為什麼IE 11的127.0.0.1無連線無反應

IE呀IE

IE11與FireFox對照圖

在TechDays Taiwan 2013的ASP.NET Web API 2演講中,有一個重覆演練數十次的Demo居然出錯而跑出不來,礙於時間的關係,並無法在第一次時找出問題點。在演講時的問題如上圖的IE 11,下課後其實還沒走出教室我就知道問題是出在IE 11身上,因為之前的演練我並無使用過IE 11。只能怪自己的環境測試不足

程式自古誰不錯,留取丹心照汗青。

Worker Role+OWIN+Web API

這是一支Worker Role+OWIN+ASP.NET Web API的專案,專案架構圖如下:

Worker Role+OWIN+ASP.NET Web API架構圖

原本猜想是不是IE 11的HTTP Header裡有太新的內容,所以OWIN Host看不懂而不知道怎麼處理IE 11的請求,結果是我想太多。

IE 11的127.0.0.1之謎

最上方的圖是課後做的實驗,這個問題只會出現在IE 11身上,但,為什麼只有IE 11呢?

事出必有因。

讓我們把因給追出來吧。首先透過小朱的提醒,先看一下Fiddler,不看還好,看了昏到。IE 11在使用127.0.0.1時根本連連線請求都沒送出去。@@

IE 11請求127.0.0.1

如果我們把IE 11的127.0.0.1改為localhost,我們就能看到程式正常運作的畫面:

IE 11請求localhost

花生省魔事?????

其實搜尋完第一個關鍵字解答就出來了。Key word:「IE 11 127.0.0.1」。

IE 11的「啟用加強受保護模式」

啟用加強受保護模式

啟用加強受保護模式(Enhanced Protected Mode , EPM)是IE 10就推出的新功能,細節我就不多說了(有興趣者,請行參考後面那長長一串連結)。安全與方便很難兩全,測試不足還是怪自己吧。

參考資料:

  • http://blog.yorkxin.org/posts/2012/11/13/debugging-rails-app-on-ie10-non-desktop
  • http://blogs.msdn.com/b/ieinternals/archive/2012/09/05/debugging-local-websites-using-not-metro-immersive-modern-full-screen-internet-explorer-10-desktop-f12.aspx
  • http://blogs.technet.com/b/twsecurity/archive/2012/12/11/ie-10.aspx
  • http://blogs.msdn.com/b/ie/archive/2012/03/14/enhanced-protected-mode.aspx
  • http://blogs.msdn.com/b/ieinternals/archive/2012/06/20/loading-local-files-in-enhanced-protected-mode-in-internet-explorer-10.aspx
  • http://blogs.msdn.com/b/ieinternals/archive/2012/03/23/understanding-ie10-enhanced-protected-mode-network-security-addons-cookies-metro-desktop.aspx

沒有留言:

張貼留言

感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。