2009-12-14 86 views
1

我有一個ASP.NET Web應用程序調用一個ASP.NET Web服務,然後它自己調用報告中的報告服務以將報告保存到文件中。整個事情應該等到報告出現之後再用可下載的PDF報告返回鏈接。更改ASP.NET頁面超時

問題在於報告生成時間超過90秒,並且Web應用程序中的頁面超時,同時等待它從呼叫中返回以生成報告。該報告最終產生,但我希望該頁面繼續等待。

我試過在'ASP''Limits-Properties'中調用'Script Time-out',它在1:30到5:00之間設置了一些東西,但它沒有區別。我已經爲我的Web應用程序和Web服務完成了這項工作,但不要認爲(可能不正確)需要在報告服務中進行這項工作,因爲無論如何我都無法找到該設置,因爲報告始終會生成以使其本身不會出錯。

我也試着改變 <的httpRuntime的maxRequestLength =「32768」 executionTimeout =「60000」/> 設置20000毫秒,看它是否超時任何更快,它再沒有效果,這並不令人感到意外因爲它會去超時應該在我改變它之前的60秒內,而不是90.

那麼,如何將其更改爲等待更長的報告?

回答

1

我可能是錯的,但我擔心超時設置在客戶端瀏覽器上。 你可以從另一個角度來看待這個嗎?即。返回一個每5秒刷新一次的「加載」頁面,直到報告準備就緒?

+0

我無法在Firefox 3.5或IE8中找到該設置,但在服務器上設置執行超時當然似乎並沒有做到這一點(無論debug是false還是true - 它表示它在http:// msdn上必須爲false) .microsoft.com/en-us/library/e1f13641.aspx但仍然無效)。因此,我們將按照建議做一個關於何時準備就緒的後臺檢查頁面。 – Phil 2009-12-14 09:30:58

1

您應該看看http://msdn.microsoft.com/en-us/library/e1f13641.aspx來更改您的web.config並增加您的executionTimeout配置。

這不會解決您長時間運行的問題,也可能會造成另一個問題。

您可以嘗試創建異步引擎來處理該報告。當用戶要求報告時,將其放入MSMQ隊列並由後臺處理;當你完成後,發送附有該報告的電子郵件。

這樣你的用戶不需要在應用程序內部等待,並且可以將他/她的想法轉到另一個主題。

0

您對web服務的調用將有一個超時。確保將其設置爲適當的值,但一旦數據可用,最好有一個刷新頁面。

0

超時也可能受到網站前防火牆或代理的限制。