1:localhost.和127.0.0.1.帶來的URL行為不一致
無法走本地代理,這個無法本地調試的問題並不是個BUG,微軟官方是有給出過解釋的,這是源於IE浏覽器和.NET框架對於本地請求是不走代理的,因而Fiddler無法檢測數據。於是為本地地址加.符號,這就帶來URL行為不一致的問題。
取當前Context.Request.URL,會發現系統自動將地址中的.符號忽略了,這為我們針對URL編碼帶來了不一致的問題;
2:target machine actively refused it(目標地址積極拒絕)
Filddler Option的Enable IPV6取消。
3:修改Custom Rules帶來的URL行為不一致
解決1中的問題,必須采用Custom Rules,有關信息對應:http://fiddler2.com/documentation/KnowledgeBase/FiddlerScript/ModifyRequestOrResponse
我的解決方案中對應兩個虛擬站點,則要為Fiddler更改策略如下:
if (oSession.host=="aaa:22222") {
oSession.host="127.0.0.1:22222";
}
if (oSession.host=="aaa:22222") {
oSession.host="127.0.0.1:22222";
}
當然,這個解決不是說得到了aaa這個URL,而是localhost.,也就是仍舊存在URL行為不一致的問題
4:設置站點為"Use Local iis web server"
在VS中設置調試的站點不是development server,而是IIS,其中,把URL填寫為本機的IP地址,如:http://192.168.80.1/。好吧,所有這一切,還是只能怪IE對本地地址不走代理。因為我們知道Fiddler一開啟,實際就是為IE設置了走自身的代理。