2008-08-27 16 views
13

我將有一個ASP.net頁面來創建一些Excel表格並將它們發送給用戶。問題是,有時我會得到Http超時,可能是因爲Request運行時間比executionTimeout長(默認情況下爲110秒)。在代碼/「刷新」請求中設置ASP.net executionTimeout

我只是想知道我的選擇是什麼,以防止這種情況,而不想通常增加web.config executionTimeout?

在PHP中,set_time_limit存在可以在函數中使用來延長其生命,但我沒有在C#/ ASP.net中看到任何類似的東西?

如何處理ASP.net中的長時間運行的函數?

回答

13

如果要增加執行超時爲這一個要求,你可以設置

HttpContext.Current.Server.ScriptTimeout

但您可能仍然有的問題客戶端超時,您無法直接從服務器直接解決問題。爲了解決這個問題,你可以實現一個「處理」頁面(像Rob建議的那樣),直到響應準備就緒。或者你可能想看看AJAX做類似的事情。

+1

這也適用於ASP.NET MVC應用程序 - 謝謝! – 2009-03-14 05:30:03

1

我自己並沒有真正面對這個問題,所以請記住這一點。

有沒有反正你可以運行進程異步並指定一個回調方法,一旦完成後,然後保持在「我們正在處理您的請求..」循環的循環。然後你可以打開它來添加一些漂亮的UI增強功能。

只是有點想出來。這很可能是諸如此類的事情,我想這樣做:)

+0

可否請您詳細說明這個ideea,你如何設置回調方法? – 2015-12-14 13:49:43