2010-02-10 66 views
10

當用戶點擊鏈接時,我們收到了一個正在生成並實時投放的報告。我可以在單個頁面的ASP.NET中更改網頁超時閾值嗎?

當然,在我們上線後,我們發現有些用戶有足夠的數據可以使報表運行得足夠慢,以至於超時。

長期來看,我們將通過創建一個頁面來定期查找已完成的報表來解決此問題,並在準備就緒時加載它。但是現在,如果可能的話,我們希望儘快解決眼前的問題。

有沒有辦法延長單個網頁的超時時間?

我發現this似乎表明它有點可能(但這似乎是一個非常糟糕的主意,因爲它改變了整個網站的整個網絡通話期間,更糟的是,它似乎可能有問題同時也有多個命中同步,可能會使整個站點的超時時間更長)

我在本地也發現了this,但它並沒有最終回答這個問題(儘管它確實提供了長期解決方案, )

回答

10

如果頁面位於(或可移動到)其自己的目錄中,則可以將web.config放在該目錄中執行超時或任何其他您想要擴展的設置。即

<?xml version="1.0"?> 
<configuration> 
    <appSettings/> 
    <connectionStrings/> 
    <system.web> 
     <!-- allow for intensive calculations in reports --> 
     <httpRuntime executionTimeout="6000" /> 
    </system.web> 
</configuration> 

據有關first link you provided評論者之一,設置Server.ScriptTimeout = 3600;不是一個全球性的變化,所以你可能要重新考慮這種選擇也是如此。

傑拉德寫道回覆:一個ASP.NET頁面
上週三的超時時間,2006年11月29日下午3時38
我 決定檢查該 以書面形式有效性一個包含 兩頁的測試程序。在其中一頁 中,將ScriptTimeout屬性設置爲 3000,而在其他頁面中 的屬性值未更改。 事實證明,加載 第一個頁面,那麼第二頁之後,ScriptTimeout在 第二頁 值回覆到其默認 值(釋放90秒 30000000調試)或設置的值 在配置文件中。在 的結論中,ScriptTimeout 屬性在一頁中更改時, 在全局級別上不會更改。

+0

兩個很好的答案之一。希望我可以爲你投票兩次。在我放棄這些之後會回來接受。 – Beska 2010-02-10 17:51:51

+0

對。現在我只需要在我的手指周圍綁上一根繩子(或一個球和一條鏈),以確保它最終得到正確的修復。非常感謝。 – Beska 2010-02-10 18:10:11

+0

(爲了記錄,我使用了第二個選項,但我懷疑第一個工作的效果也會如此。) – Beska 2010-02-10 18:10:45

相關問題