2010-02-15 94 views
0

我有一個ASP.Net應用程序,它使AJAX請求在報告中檢索。該報告可以運行很長時間,因此我將asyncpostbacktimeout設置爲<asp:ScriptManager />爲600.但是,當我嘗試運行報告時,如果運行時間超過90秒,則無法返回。我可以在IIS日誌中看到POST請求成功地具有200狀態,並且我可以看到所花費的時間遠遠少於600.ASP.Net AJAX超時雖然請求在超時時間之前很長時間完成

在返回超時錯誤之前,網頁忠實地等待整個600秒:

Error: Sys.WebForms.PageRequestManagerTimeoutException: The server request timed out.

是否有任何設置我應該在IIS中檢查?連接超時是900秒。

乾杯, 伊恩

回答

2

您是需要設置超時在幾個地方...

1)在IIS網站連接的time out:

這是時間(以秒爲單位)當已過時的服務器將斷開請求的客戶端即瀏覽器。確保價值稍大於您的要求。確保在此之後重新啓動IIS。

2)的web.config <httpRuntime />

的httpRuntime executionTimeout = 「1000」

這是當經過ASP.Net發動機停止處理頁面週期的執行的時間(以秒計)。確保這是適當的設置。

3)在web.config中<sessionState timeout="20"/>

確保它的設置適當。默認值是20分鐘,所以它不應該與您的值對比,即600秒

4)<authentication mode="....." > 在web.config中驗證屬性中的超時值(以秒爲單位)。如果您在使用腳本管理任何認證/授權

5)最後Asyncpostbacktimeout屬性值(單位:秒)

+0

你可以讓我知道這其中一項設置是罪魁禍首?我也在用AJAX timout掙扎,但通過JQuery。我能看到的所有設置都超過5分鐘(對於一些大規模報告),但持續60秒後會獲得200 | OK。 – BlueChippy

相關問題