使用Fiddler调试visual studion多个虚拟站点的问题分析
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设置了走自身的代理。
上一篇: 鲜为人知的CSS技巧10则