无法让Fiddler捕获到IIS的本地流量

时间:2013-06-07 22:55:16

标签: c# asp.net iis fiddler

我最近安装了最新的Fiddler(Fiddler4),我尝试的任何东西都是为了让它捕获本地流量。我有一个MVC应用程序连接到在IIS上运行的MVC WebApi应用程序,这是我尝试过的:

  • Fiddler选项>连接>监控所有连接&使用PAC脚本
  • 更改了WebClient C#调用以使用以下URL但未成功:
  • 在IIS中更改了我的“默认网站”,以便在使用我的本地帐户的新AppPool下运行,并以管理员身份运行Fiddler
  • <system.net> <defaultProxy> <proxy bypassonlocal="False" usesystemdefault="True" /> </defaultProxy> </system.net> 添加到我的MVC应用的web.config中。

没有任何效果,我不知道该尝试什么。任何意见是极大的赞赏。 谢谢, 肖恩

6 个答案:

答案 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中的网站中进行绑定才能匹配。

然后使用http://mysite.local/

答案 4 :(得分:0)

尝试使用http://machinename./page

,即...尝试将句点后缀为机器名称并浏览。

答案 5 :(得分:0)

我遇到了同样的问题。 通过修改 Web.config

进行了修复
<system.net>
    <defaultProxy enabled="true">
        <proxy proxyaddress="http://127.0.0.1:8888" bypassonlocal="False"/>
    </defaultProxy>
</system.net>