遇到一起奇怪的IE問題。

User回報使用某ASP.NET網頁出錯,問題發生在使用者按下送出鈕後,ASP.NET網頁進行PostBack,但沒多久IE 8彈出DNS Error:

無法顯示網頁。找不到伺服器或 DNS 錯誤。
The page cannot be displayed. Cannot find server or DNS Error.

這問題最吊詭的地方在於: 前後都是同一支ASP.NET程式,若真因DNS有誤找不到網站,怎麼會先GET正常顯示網站,卻在POST時回報找不到該網站?

使用Fiddler追蹤後,發現該網頁PostBack耗時較久,1分多鐘才會傳回結果,而使用馬錶計時,IE只等了約10秒就彈出找不到伺服器錯誤! 為了驗證此問題會發生在每個耗時較久的網頁,我做了一個簡單的測試網頁,PostBack時Thread.Sleep(30*1000),等待30秒再Response.Write(),使用問題IE測試,得到同樣結果 — IE等了10秒,接著彈回找不到伺服器錯誤!

同事找到一則微軟KB,提供重要線索 -- 當網站傳回資訊耗時過久,IE有可能出現"無法顯示網頁。找不到伺服器或 DNS 錯誤。"。有趣的是: 1) 為何錯誤訊息不是連線逾時而是DNS錯誤? 2) IE8的預設逾時設定為60分鐘,10秒彈出錯誤是哪招?

依KB所說,找出ReceiveTimeout Registry設定,發現問題機器的設定值為10,000,相當於10,000ms,跟先前觀察到的10秒完全吻合,至此真相大白!!

但是,為什麼它會被修改成10秒??

嗯,跟大家想的一樣,使用者指出對於此事完全不知情! 擔心刑求逼供會傷了皇城之內的和氣,本案到此終結。


Comments

# by 貓咪圓滾滾

黑大這篇文章我已經反覆讀了好幾遍 但是我依然看不是很懂 只是從微軟KB看來 確定應該是跟小手有點關聯? 但是我完全不知道登錄編輯程式到底是在哪裡? 應該要怎麼改?(所以妳放心 絕對不會有人有興趣對你刑求逼共 哈哈) 但不管怎樣 其實現在我點黑大部落格的連結已經都很順了 所以謝謝黑大!! : )

# by player

登錄編輯程式 開始-> 執行 -> regedit -> 確定

# by CJ

根據推測 , 應該是有安裝XP最佳化的登錄檔 ; 有可能是使用者或是幫忙建置此PC的IT人員

# by 貓咪圓滾滾

老天 我為什麼要高興得這麼早啊QQ 小手還是在很多地方都有出現捏 像黑大覺得需要提醒密碼 可是我嚴重到已經都提醒了卻還是搞不清楚狀況哪 沒辦法 看來只能放棄(果然就只有能堅持十分鐘的能耐 哈哈) (其實從來沒有人有刑求逼供妳只能做一種選擇啊!! 哈哈)

# by 貓咪圓滾滾

Happy! 總算發現替代品了! (上面這位 妳還是不要又高興得太早 免得又樂極生悲!! 哈哈)

# by 貓咪圓滾滾

對不起 其實黑大不用在意我說小手的事啦 因為小手在我看其他點部落的文章也都有發生 只是如果有我想看的連結出現小手 那接下來我總會覺得自己是"疲於奔命"(真的有這麼誇張嗎?? 哈哈)

Post a comment