在我的應用程序中,一個查詢需要3分鐘才能執行。我發現默認ExecutionTimeout值是110秒。我試圖將其更改爲500(秒),但它沒有解決我的問題。某處我發現設置<compilation debug="false">
允許配置ExecutionTimeout屬性。但是,即使這並沒有解決我的問題。如何爲長時間運行的查詢增加executionTimeout?
有誰知道我可以如何增加長時間運行的查詢的執行超時?
在我的應用程序中,一個查詢需要3分鐘才能執行。我發現默認ExecutionTimeout值是110秒。我試圖將其更改爲500(秒),但它沒有解決我的問題。某處我發現設置<compilation debug="false">
允許配置ExecutionTimeout屬性。但是,即使這並沒有解決我的問題。如何爲長時間運行的查詢增加executionTimeout?
有誰知道我可以如何增加長時間運行的查詢的執行超時?
當查詢需要那麼長時間時,我會建議異步運行它,並在完成時使用回調函數。
我對ASP.NET沒有太多經驗,但也許您可以使用AJAX來實現這種異步行爲。
通常情況下,網頁應該在幾秒鐘內加載,而不是幾分鐘。不要讓你的用戶等待這麼久!
executiontimeout適用於任何請求,同步或異步...所以AJAX請求會受到相同的時間限制 – 2016-09-29 04:47:55
您可以在web.config中設置executionTimeout
以支持較長的執行時間。
executionTimeout
指定在ASP.NET自動關閉請求之前允許執行的最大秒數。 MSDN
<httpRuntime executionTimeout = "300" />
本作的執行超時5分鐘。
可選的Int32屬性。
指定在被ASP.NET自動關閉之前允許執行請求的最大秒數,該請求被執行到 。
僅當編譯 元素中的調試屬性爲False時,此超時才適用。因此,如果debug屬性爲True,那麼您不必將此屬性設置爲較大的值,以便在調試時避免 應用程序關閉。默認值爲110秒,Reference。
我們可以爲單個頁面設置此值 – MonsterMMORPG
@MonsterMMORPG您可以使用此代碼:Page.Server.ScriptTimeout = 60 –
對於.NET
框架1.0和1.1,執行超時爲90秒,否則爲110秒。
如果你需要改變你需要做的是在你的web.config
defult設置下<httpRuntime>
<httpRuntime executionTimeout = "number(in seconds)"/>
但要記住:
此超時只適用於在編譯調試屬性元素是假的。
在詳細介紹compilation Element
有看看這個文件有看在我的情況大概httpRuntime Element
The關於超時值的提示只有在web.config文件的編譯元素中debug =「true」時才應用。 –
@EdGraham你不是指「僅當debug = false時才應用超時值」嗎? huMpty duMpty在說: 只有當編譯元素中的調試屬性爲False時,此超時才適用。 – 7wp
這一定是正確的 - 我很抱歉! –
,我需要我的WCF運行超過2小時。設置和根本沒有工作。 wcf的執行時間不超過20〜30分鐘。所以我改變了IIS管理器中應用程序池的空閒超時設置,然後它工作!在IIS管理器中,選擇您的應用程序池並右鍵單擊它並選擇高級設置,然後將空閒超時設置更改爲您需要的任何分鐘。所以,我認爲設置web.config和設置應用程序池都是需要的。
這可能意味着您沒有正確設置它,或者在進行更改後沒有回收您的應用程序池。 – Zorgarath
RE。 「我們可以爲單個頁面設置這個值」 - MonsterMMORPG。
是的,您可以(&通常應該)使用位置標記包含上一個答案。
例如
...
<location path="YourWebpage.aspx">
<system.web>
<httpRuntime executionTimeout="300" maxRequestLength="29296" />
</system.web>
</location>
</configuration>
上面的代碼是從我自己的工作的web.config,這是我昨天測試結束時拍攝的 - 它爲我工作。
我理解事情的方式,我可以添加一個小的web.config文件到我的特定頁面所在的文件夾,只有這個設置?我相信web.configs過載,所以本地頁面文件夾中的web.config覆蓋了根目錄下的web.config設置,並且只讓特定頁面更容忍? –
要設置超時在每個頁面級別,你可以使用這個簡單的代碼:
Page.Server.ScriptTimeout = 60;
注:60表示40秒,超時只適用於在編譯元素中的調試屬性爲false 。
請記住,如果您使用會話,則會阻止所有休息頁面。 – Aristos
是不是適合你? –