[英]SQL Server Exception:Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding
[英]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 中添加
<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="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"" 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.