Asp.net
長時間 ASP.NET 操作的 IIS 請求超時
執行長時間操作時,我遇到來自 IIS 的請求超時。在後台我的 ASP.NET 應用程序正在處理數據,但是正在處理的記錄數很大,因此操作需要很長時間。
但是,我認為 IIS 會使會話超時。這是 IIS 或 ASP.NET 會話的問題嗎?
如果要延長允許執行 ASP.NET 腳本的時間量,請增加該
Server.ScriptTimeout值。.NET 1.x 的預設值為 90 秒,.NET 2.0 及更高版本的預設值為 110 秒。例如:
// Increase script timeout for current page to five minutes Server.ScriptTimeout = 300;這個值也可以在你的
web.config文件的httpRuntime配置元素中配置:<!-- Increase script timeout to five minutes --> <httpRuntime executionTimeout="300" ... other configuration attributes ... />
請注意根據MSDN 文件:
“此超時僅適用於編譯元素中的調試屬性為 False。因此,如果調試屬性為 True,則不必將此屬性設置為較大的值,以避免在調試時關閉應用程序。 "
如果您已經這樣做了,但發現您的會話即將到期,請增加 ASP.NET
HttpSessionState.Timeout值:例如:
// Increase session timeout to thirty minutes Session.Timeout = 30;這個值也可以在你的
web.config文件的sessionState配置元素中配置:<configuration> <system.web> <sessionState mode="InProc" cookieless="true" timeout="30" /> </system.web> </configuration>如果您的腳本需要幾分鐘才能執行並且有許多並髮使用者,那麼請考慮將頁面更改為Asynchronous Page。這將增加您的應用程序的可擴展性。
另一種選擇是,如果您對伺服器具有管理員訪問權限,則可以將此長時間執行的操作視為實現為計劃任務或 Windows 服務的候選者。
