ASP.NET 頁面請求超時時間設定 Server.ScriptTimeout executionTimeout
阿新 • • 發佈:2019-01-02
ASP.NET 頁面請求超時時間(頁面後臺程式執行時間)預設值為 110 秒(
在 .NET Framework 1.0 版和 1.1 版中,預設值為 90 秒
)
即:
Server.ScriptTimeout = 110(HttpServerUtility.ScriptTimeout = 110)
System.Web.Configuration.HttpRuntimeSection().ExecutionTimeout.ToString() =
00:01:50
(110 秒)
方法一:設定 Server.ScriptTimeout 的值 注意:設定的值必須大於90,否則不會生效,請求超時值依然是90秒 (網上流傳的說法,經驗證錯誤!!!) 只有當 compilation 元素中的除錯屬性為 False 時,此超時屬性才適用(true:ScriptTimeOut=30000000)。若要避免在除錯期間關閉應用程式,請不要將此超時屬性設定為較大值。
方法二: Web.config 配置 httpRuntime executionTimeout (單位秒)
注意: 只有當 compilation 元素中的除錯屬性為 False 時,此超時屬性才適用(true:ScriptTimeOut=30000000)。若要避免在除錯期間關閉應用程式,請不要將此超時屬性設定為較大值。
httpRuntime executionTimeout
的設定可修改
Server.ScriptTimeout 的值,
使用 ScriptTimeout 屬性以程式設計方式對超時值進行的設定優先於 Web.config 設定。
方法四:IIS配置 修改 指令碼超時 值
這個未確定 網站→高階設定:
一樣未確定 應用程式池 →高階設定 :
注意:如果頁面使用了 UpdatePanel,UpdatePanel 內部的請求分以下兩種情況: ① 設定的超時值 >=90秒,UpdatePanel 內部的請求超時值將變為 90 秒! ② 設定的超時值 <90秒,UpdatePanel 內部的請求超時值將變為 所設定的值!
下圖 Server.ScriptTimeout = 5 秒,點選 UpdatePanel 內部的按鈕, Thread.Sleep(20 * 1000) 秒,請求超時,但是頁面看不到報錯資訊! 而點選 UpdatePanel 外部的按鈕,則會報如圖1的 “請求超時”的錯誤資訊!
下圖 Server.ScriptTimeout = 100 秒,點選 UpdatePanel 內部的按鈕, Thread.Sleep(95 * 1000)//停止95秒; 實際上到 90秒就超時了(如下面第二圖) 而點選 UpdatePanel 外部的按鈕, Thread.Sleep(95 * 1000)//停止95秒 , 請求成功!
全域性超時時間 伺服器上如果有多個網站,希望統一設定一下超時時間,則需要設定 Machine.config 檔案中的 ExecutionTimeout 屬性值。 Machine.config 檔案位於 %SystemRoot%\Microsoft.NET\Framework\%VersionNumber%\CONFIG\ 目錄中。
歡迎補充!
方法一:設定 Server.ScriptTimeout 的值 注意:設定的值必須大於90,否則不會生效,請求超時值依然是90秒 (網上流傳的說法,經驗證錯誤!!!) 只有當 compilation 元素中的除錯屬性為 False 時,此超時屬性才適用(true:ScriptTimeOut=30000000)。若要避免在除錯期間關閉應用程式,請不要將此超時屬性設定為較大值。
//單位秒
Server.ScriptTimeout = 60;
方法二: Web.config 配置 httpRuntime executionTimeout (單位秒)
注意: 只有當 compilation 元素中的除錯屬性為 False 時,此超時屬性才適用(true:ScriptTimeOut=30000000)。若要避免在除錯期間關閉應用程式,請不要將此超時屬性設定為較大值。
<system.web>
<compilation debug="false" targetFramework="4.0" />
<!-- 設定為600秒 Server.ScriptTimeout = 600 -->
<httpRuntime executionTimeout="600"/>
</system.web>
方法三:設定 HttpRuntimeSection.ExecutionTimeout 的值 (
經測試,無效!!!不知如何使用!)
https://msdn.microsoft.com/zh-cn/library/system.web.configuration.httpruntimesection.executiontimeout(VS.80).aspx
System.Web.Configuration.HttpRuntimeSection configSection = new System.Web.Configuration.HttpRuntimeSection();
configSection.ExecutionTimeout = TimeSpan.FromSeconds(100);
方法四:IIS配置 修改 指令碼超時 值
這個未確定 網站→高階設定:
一樣未確定 應用程式池 →高階設定 :
注意:如果頁面使用了 UpdatePanel,UpdatePanel 內部的請求分以下兩種情況: ① 設定的超時值 >=90秒,UpdatePanel 內部的請求超時值將變為 90 秒! ② 設定的超時值 <90秒,UpdatePanel 內部的請求超時值將變為 所設定的值!
下圖 Server.ScriptTimeout = 5 秒,點選 UpdatePanel 內部的按鈕, Thread.Sleep(20 * 1000) 秒,請求超時,但是頁面看不到報錯資訊! 而點選 UpdatePanel 外部的按鈕,則會報如圖1的 “請求超時”的錯誤資訊!
下圖 Server.ScriptTimeout = 100 秒,點選 UpdatePanel 內部的按鈕, Thread.Sleep(95 * 1000)//停止95秒; 實際上到 90秒就超時了(如下面第二圖) 而點選 UpdatePanel 外部的按鈕, Thread.Sleep(95 * 1000)//停止95秒 , 請求成功!
全域性超時時間 伺服器上如果有多個網站,希望統一設定一下超時時間,則需要設定 Machine.config 檔案中的 ExecutionTimeout 屬性值。 Machine.config 檔案位於 %SystemRoot%\Microsoft.NET\Framework\%VersionNumber%\CONFIG\ 目錄中。
<httpRuntime executionTimeout="600" />
歡迎補充!