簡體   English   中英

超時已過。 操作完成前超時時間已過或服務器未響應

[英]Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding

我正在使用基於 MVC(ASP.Net + C#) 的應用程序。 我使用 Jquery DataTable 來顯示記錄。 現在的問題是,對於某些記錄,它運行良好,而對於某些記錄,它在前端給我錯誤,例如“超時已過期”。

我正在使用實體框架和存儲過程來獲取記錄。 對於某些值,它給了我超時錯誤。 如果我直接用那些需要參數執行這個 Sp(它給我超時錯誤),那么它工作正常(但在 SQL Server 中花費大約 11 秒的時間。)。 我剛收到超時錯誤前端。

我得到低於錯誤。

{"超時過期。在操作完成之前超時時間已過或服務器沒有響應。"} {"等待操作超時"}

我試過在 web.config 中添加

  1. 連接壽命=120;
  2. 最小池大小=120;
  3. 連接超時=300;
  4. 最大池大小=1000;池化=真;
  5. <httpRuntime executionTimeout="180" maxRequestLength="2000000000" />

但是沒有鍛煉。

我的 Web.Config 如下。

<add name="TestEntities" connectionString="metadata=res://*/Test2.csdl|res://*/Test2.ssdl|res://*/Test2.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=Test2;integrated security=True;multipleactiveresultsets=True;Connection Lifetime=120;Min Pool Size=120;Connection Timeout=300;Max Pool Size=1000;Pooling=true;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

請幫忙。

謝謝-尼梅什

SQL Server 為存儲過程創建執行計划以優化進一步執行的性能(參數嗅探)。 當您在SSMS上執行此存儲過程時,它工作正常,但是當您嘗試從 ASP.NET MVC 應用程序執行相同的存儲過程時,您將面臨超時問題。 您可以通過重新創建/更改您的存儲過程WITH RECOMPILE選項(在您的參數之后)來解決此問題。 我今天遇到了這個問題; 改變了我的存儲過程WITH RECOMPILE選項,它就像一個魅力。 有關更多詳細信息,請閱讀Parameter Sniffing

我已經通過將 CommandTimeout 增加到 120 來解決問題

Db.CommandTimeout = 120;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM