C# Can';不要让Fiddler捕获到IIS的本地流量

C# Can';不要让Fiddler捕获到IIS的本地流量,c#,asp.net,iis,fiddler,C#,Asp.net,Iis,Fiddler,我最近安装了最新的Fiddler(Fiddler4),但我完全没有尝试让它捕获本地流量。我有一个MVC应用程序正在连接一个MVC WebApi应用程序,这两个应用程序都运行在IIS上,下面是我尝试的: Fiddler选项>连接>监视所有连接并使用PAC脚本 将WebClient C#调用更改为使用以下URL,但未成功: http://machinename/app-name http://localhostproxy.com/app-name 此页上的所有ipv4/ipv6 etc URL

我最近安装了最新的Fiddler(Fiddler4),但我完全没有尝试让它捕获本地流量。我有一个MVC应用程序正在连接一个MVC WebApi应用程序,这两个应用程序都运行在IIS上,下面是我尝试的:

  • Fiddler选项>连接>监视所有连接并使用PAC脚本
  • 将WebClient C#调用更改为使用以下URL,但未成功:
    • http://machinename/app-name
    • http://localhostproxy.com/app-name
    • 此页上的所有ipv4/ipv6 etc URL
    • 还尝试使用了。修复-
      http://localhost
  • 将我在IIS中的“默认网站”更改为在使用我的本地帐户的新AppPool下运行,并以管理员身份运行Fiddler
  • 添加<代码> 到MVC应用程序的my web.config
什么都没用,我不知道该怎么办。非常感谢您的建议。 谢谢
Shawn

尝试在主机文件(c:\windows\system32\drivers\etc\hosts)中添加一条记录,如:

然后,您需要在IIS中的网站中使用绑定才能匹配


然后使用

我所知道的捕获非Webbrowser流量的最简单可靠的解决方案是显式指定Fiddler的端口作为web请求的代理。根据您的代码所做的请求,代码将类似于:

 request.Proxy = new WebProxy("127.0.0.1", 8888)
注意:不要忘记使用“捕获”和“所有进程”运行Fiddler(在Fiddler的状态栏中可见)

尝试使用


i、 尝试在机器名后面加上句号,然后浏览

结果是我需要将Fiddler设置为反向代理()。我真的不明白为什么在我从Fiddler2升级到Fiddler4之前我不必这么做。我过去只会使用
http://ipv4.localhost/app-name
,一切正常。不过,为了让它与Fiddler4一起工作,我设置了反向代理,然后从
http://ipv4.localhost/app-name
http://machinename:8888/app-名称
。我现在可以收听应用程序间的通信。你知道为什么我不必在Fiddler2上这么做,但升级到Fiddler4后我现在这么做了吗?

我知道你在你的OP中提到了这一点,但这对我来说很有效,而且做起来非常简单,因此,我想我会与大家分享,以防其他人遇到同样的问题,如果他们不需要的话,他们不想经历设置反向代理的麻烦


我通过简单地将IIS应用程序池更改为以我的身份运行,从而实现了这一点,因为Fiddler在默认情况下似乎只捕获登录用户的流量。只需确保您的用户拥有IIS所需的所有必要权限;我是管理员,所以这对我来说不是问题。当然,完成后不要忘记更改IIS应用程序池标识

当然,另一种选择是以运行IIS应用程序池的用户身份登录(如果它不是像
网络服务那样的服务帐户),然后在以其他用户身份登录时运行Fiddler。

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

<system.net>
    <defaultProxy enabled="true">
        <proxy proxyaddress="http://127.0.0.1:8888" bypassonlocal="False"/>
    </defaultProxy>
</system.net>


您到底不能捕获什么?从浏览器到MVC应用程序的请求,MVC应用程序执行的Web API调用,还是两者都执行?应用程序是如何托管的?您是否尝试过将Fiddler代理地址显式指定为
?嗨,CodeCaster,我正在尝试捕获来自MVC应用程序的Web API调用,而不是来自MVC应用程序的浏览器流量。这两个应用程序都作为虚拟应用程序托管在默认网站下的IIS中。我在web.config中更改的唯一代理设置是上面的设置。我的问题实际上是一个建议。在web.config中也添加fiddler proxyaddress,如。。。。。。由于某些原因,当我尝试“.”时,IIS返回了一个错误的400请求。在得到您的答案之前,我已经让它工作了,虽然看起来它可能工作了,但我还没有测试。我最终做了类似的事情,请参见我的答案。事实证明,我没有将Fiddler设置为反向代理,我需要这样做。你知道为什么我必须用Fiddler4来做这件事吗?但是当我用Fiddler2时,它在没有额外配置的情况下工作?在这方面,Fiddler2和Fiddler4之间没有什么不同。您环境中的其他内容发生了变化。(您确定没有过滤器集吗?帮助>过滤器故障排除)“Fiddler2和Fiddler4之间完全没有区别”。所以。为什么一个有效而另一个无效,这是实现这一目标最简单的方法!设置反向代理很麻烦,这要容易得多。
<system.net>
    <defaultProxy enabled="true">
        <proxy proxyaddress="http://127.0.0.1:8888" bypassonlocal="False"/>
    </defaultProxy>
</system.net>