[ASP.NET] 解決IE10 (2008R2)限定版頁面事件逾時問題

  • 3616
  • 0

[ASP.NET] 解決IE10 (2008R2)限定版頁面事件逾時問題

這個問題著實令人不解,簡單描述一下發生情境跟暫時解決方法

 

發生情境

假定程式無錯誤的情況下,在一個長時間超過10分鐘以上作業的頁面裡,當你最後收到【無法顯示頁面】的訊息時,那麼請確認一下您的環境是否符合以下條件,若是則可以暫時以本文提到的方式處理

 

使用者環境

(1) 作業系統:Windows 2008R2

(2) Internet Explorer:IE10

SNAGHTML263a13a

(3)頁面TimeOut並非因資料庫連線或Session Timeout所引起的現象

(4)以其它瀏覽器可以順利處理完頁面請求並返回正確結果頁面

 

模擬程式碼

<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
    </div>
    </form>
</body>
</html>

 

    {
        //模擬等待10分鐘
        System.Threading.Thread.Sleep(600000);
    }

 

按下Button,執行事件經過10分鐘後,發生以下現象

image

 

解決方式

(1)進入系統註冊檔

(2)找到[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]目錄

(3)在右方視窗找到ReceiveTimeout,預設值為600000,即為10分鐘

(4)點選ReceiveTimeout,右鍵 / 修改 / 選擇十進位 / 修改數值資料,把預設值拉長

SNAGHTML26bd14f

(5)重新啟動Internet Explorer

 

結論

目前筆者並無法得知為何在IE10 For Windows 2008R2版本裡,會有如此的預設值以其原因,檢視Windows 8 裡的IE10以及其它IE9版本,並無此設定值,而此設定值將會造成頁面等待時間在超出設定值時變成【無法顯示頁面】的情況,而後續版本是否會有所改變目前仍不得而知,此外IE屬於Client端的載具,事實上開發者並無法要求使用者去修改系統註冊檔,這也是筆者把修改註冊檔稱為暫時解決方法的主要原因。

 

reference :

ReceiveTimeout

 

若本文對您有所幫助,歡迎轉貼,但請在加註【轉貼】及來源出處,並在附上本篇的超連結,感恩您的配合囉。

By No.18