1. 程式人生 > >ASP.NET 頁面請求超時時間設定 Server.ScriptTimeout executionTimeout

ASP.NET 頁面請求超時時間設定 Server.ScriptTimeout executionTimeout

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)。若要避免在除錯期間關閉應用程式,請不要將此超時屬性設定為較大值。
          

   
    
     //單位秒
    
    
     Server.ScriptTimeout = 60;
    
    
   
  
   
方法二: Web.config 配置  httpRuntime executionTimeout (單位秒)
     注意: 只有當  compilation  元素中的除錯屬性為  False  時,此超時屬性才適用(true:ScriptTimeOut=30000000)。若要避免在除錯期間關閉應用程式,請不要將此超時屬性設定為較大值。
                httpRuntime executionTimeout   的設定可修改  Server.ScriptTimeout 的值, 使用 ScriptTimeout 屬性以程式設計方式對超時值進行的設定優先於 Web.config 設定。

   
    
     <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" />
    
    
   
  
  
  
歡迎補充!