我最近安装了最新的Fiddler(Fiddler4),我尝试的任何东西都是为了让它捕获本地流量。我有一个MVC应用程序连接到在IIS上运行的MVC WebApi应用程序,这是我尝试过的:
http://machinename/app-name
http://localhostproxy.com/app-name
http://localhost
。
<system.net>
<defaultProxy>
<proxy bypassonlocal="False" usesystemdefault="True" />
</defaultProxy>
</system.net>
添加到我的MVC应用的web.config中。没有任何效果,我不知道该尝试什么。任何意见是极大的赞赏。 谢谢, 肖恩
答案 0 :(得分:7)
事实证明,我需要将Fiddler设置为反向代理(http://fiddler2.com/documentation/Configure-Fiddler/Tasks/UseFiddlerAsReverseProxy)。我真的不明白为什么在我从Fiddler2升级到Fiddler4之前我没有必要这样做。我以前只能使用http://ipv4.localhost/app-name
并且一切正常。但是,为了让它与Fiddler4一起使用,我设置了反向代理,然后将我的所有请求从http://ipv4.localhost/app-name
更改为http://machinename:8888/app-name
。我现在可以收听应用间通信。知道为什么我没有用Fiddler2做这个,但我现在在升级到Fiddler4之后呢?
答案 1 :(得分:2)
我知道你在你的OP中提到了这一点,但这对我有用并且非常简单,所以我想我会分享以防其他人遇到同样的问题并且不想经历设置的麻烦如果他们不需要反向代理。
我通过简单地更改我想要检查的流量在我的身份下运行的IIS应用程序池来实现这一点,因为Fiddler似乎只捕获默认情况下登录用户的流量。只需确保您的用户具有IIS所需的所有必要权限;我是管理员,所以这对我来说不是问题。当然,完成后不要忘记更改IIS应用程序池标识。
另一种选择当然是以IIS应用程序池运行的用户身份登录(如果它不是Network Service
之类的服务帐户),然后以其他用户身份登录时运行Fiddler。
答案 2 :(得分:1)
我知道捕获非Webbrowser流量的最简单可靠的解决方案是明确指定Fiddler的端口作为Web请求的代理。根据请求,您的代码使代码看起来类似于:
request.Proxy = new WebProxy("127.0.0.1", 8888)
注意:不要忘记使用“捕获”和“全进程”运行Fiddler(在Fiddler的状态栏中可见)
答案 3 :(得分:0)
尝试在主机文件(c:\ windows \ system32 \ drivers \ etc \ hosts)中添加记录,例如:
127.0.0.1 mysite.local
然后,您需要在IIS中的网站中进行绑定才能匹配。
答案 4 :(得分:0)
,即...尝试将句点后缀为机器名称并浏览。
答案 5 :(得分:0)
我遇到了同样的问题。 通过修改 Web.config
进行了修复<system.net>
<defaultProxy enabled="true">
<proxy proxyaddress="http://127.0.0.1:8888" bypassonlocal="False"/>
</defaultProxy>
</system.net>