IE呀IE
在TechDays Taiwan 2013的ASP.NET Web API 2演讲中,有一个重复演练数十次的Demo居然出错而跑出不来,碍于时间的关系,并无法在第一次时找出问题点。在演讲时的问题如上图的IE 11,下课后其实还没走出教室我就知道问题是出在IE 11身上,因为之前的演练我并无使用过IE 11。只能怪自己的环境测试不足。
这是一支Worker Role+OWIN+ASP.NET Web API的专案,专案架构图如下:
原本猜想是不是IE 11的HTTP Header里有太新的内容,所以OWIN Host看不懂而不知道怎么处理IE 11的请求,结果是我想太多。
最上方的图是课后做的实验,这个问题只会出现在IE 11身上,但,为什么只有IE 11呢?
事出必有因。
让我们把因给追出来吧。首先透过小朱的提醒,先看一下Fiddler,不看还好,看了昏到。IE 11在使用127.0.0.1时根本连连线请求都没送出去。@@
如果我们把IE 11的127.0.0.1改为localhost,我们就能看到程式正常运作的画面:
IE 11的“启用加强受保护模式”
启用加强受保护模式(Enhanced Protected Mode EPM)是IE 10就推出的新功能,细节我就不多说了(有兴趣者,请行参考后面那长长一串连结)。安全与方便很难两全,测试不足还是怪自己吧。