Asp.Net超時問題匯總


  

   在數據庫或者請求操作時,如果選擇的時間段過短或操作數據量過大,就會遇到"請求超時"的的問題,網絡上提供很多解決方案,但普遍不完善,根據個人經驗及參考網絡解決方案,先將其匯總如下:

 

    根據錯誤類型,大致分為如下幾種情況

  1:Asp.net請求超時

  2:IIS請求超時

  3:數據庫連接超時

  4: 數據庫操作超時

  5:應用程序池回收(低)

  6:Webservice等服務請求超時 

  7:其他的參考網址

 

下面根據上述情況一一作出處理

1:Asp.net請求超時

  http請求超時可以在webconfig中進行全局配置,(單位為秒,默認為90秒)如下

    <system.web>  

     <httpRuntime maxRequestLength="102400" executionTimeout="180" />  

    </system.web> 

 

2:IIS請求超時

  直接去IIS進行設置:IIS-網站-屬性   設置一個較大的值,但是不能太大,具體情況具體分析。

 

3:數據庫連接超時

  在配置數據庫連接字符串的時候一起配置

  <connectionStrings>

    <add name="MarketingMate" connectionString="Data Source=192.168.1.1; Database=MarketingMate; User Id=sa; Password=123; Connect Timeout=30;Min Pool Size=16;Max Pool Size=100;"

       providerName="System.Data.SqlClient"/>    

  </connectionStrings> 

 

4. 數據庫操作超時

  數據庫操作超時目前還沒有全局設置方法,只能設置Command類的CommandTimeOut屬性(單位為秒,默認為30秒)

   context.CommandTimeout = 180;  

 

 5:應用程序池回收(底)這種出現的情況很低,請酌情設置

  應用程序池會在一定的時間內回收線程,直接設置即可:應用程序池--屬性--回收工作進程 

 

 6:Webservice等服務請求超時 (這種是參考網上提供的解決方法,本人沒遇到過)

  擴大代理類的超時限制,默認是90秒  ,即在調用方法前指定超時時間。 
  [csharp]YourWebService yws = new YourWebService(); yws.Timeout = 1200000; //20分鍾,單位是毫秒[/csharp] 
  如果將 Timeout 屬性設置為 Timeout.Infinite,則指示該請求無超時。即使 XML Web services 客戶端可以將 Timeout 屬性設置為無超時,Web 服務器仍可以在服務器端使請求超時。

 

 7:其他的參考網址

  有人說設置下web.config關於sessionState節點的配置方案也可以解決,如果如上6中解決方案無法解決,請參考如下網址  http://blog.sina.com.cn/s/blog_46682add0100axtf.html

 

 

   以上純屬個人觀點,轉載請注明出處

 
 
                                                                                                                   --------------AK:2012-09-05

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM