Fiddler 没有从 ASP.NET 网站嗅探 SOAP 流量

Posted

技术标签:

【中文标题】Fiddler 没有从 ASP.NET 网站嗅探 SOAP 流量【英文标题】:Fiddler not sniffing SOAP traffic from ASP.NET website 【发布时间】:2011-02-16 12:16:25 【问题描述】:

到目前为止,我已经成功地使用 fiddler 来嗅探来自测试装置、控制台应用程序和 Web 项目的 Web 服务流量。

今天我注意到,如果我正在运行我的 Web 应用程序(它是一个 ASP.NET 网站,在 IIS 上本地托管),我将无法再嗅探这种流量。我看到所有本地流量,但 Web 服务流量刚刚消失(服务正在被命中,因为我看到响应调试到代码中)。

我仍然能够在同一解决方案(完全相同的环境)中成功地嗅探来自测试装置或控制台应用程序的肥皂请求和响应。

如果它是 Windows(我在 Win7 上)安全更新或类似的东西,我猜它永远不会起作用(除非它只影响通过 IIS 路由的流量)。

我应该寻找什么可能导致出现这种行为

任何指针表示赞赏!

注意我可以看到本地流量,但看不到 SOAP 请求/对不在本地托管的 Web 服务的响应(这是另一个团队提供的沙箱)

编辑:这一点配置成功了(在 Rick Strahl 的博客上找到)

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

【问题讨论】:

我刚刚注意到这可能是一个骗局。 ***.com/questions/1937805/… 注意骗局 - 我可以看到本地流量,但看不到 SOAP 请求/对未在本地托管的 Web 服务的响应(这是另一个团队提供的沙箱) 【参考方案1】:

网络服务的客户端是什么? ASP.NET?

除非您将 ASP.NET 配置为使用代理,否则不会代理 ASP.NET 流量。有可能/很可能 app.config 或 machine.config 发生了变化,导致流量不再被代理?

你应该看看这个部分:http://www.fiddlerbook.com/fiddler/help/hookup.asp#Q-DOTNET

【讨论】:

我看到了从浏览器到 IIS 的 localhost 流量(即 GET localhost/mySite/MyStartPage.aspx 200 OK (text/html)),但我看不到来自 IIS 的流量与托管 Web 服务的远程服务器通信。我通过 WCF 端点发出请求,而不是以任何方式过滤。我可以在不运行网站时看到流量,但发送的数据是手工制作的,因为不是由我的 Web 应用程序生成的,导致故障排除困难。这是我在运行网站时希望看到的 --> POST XXX.XX.XXX.XXX:9080/WebServiceDomain/myService 500 OK (text/xml) etc 我注意到的另一件事可能有助于排除故障 - 如果我将端点 url 粘贴到浏览器中,它会在流量中显示正常 我在 WCF 绑定(bypassonlocal=false 和 usedefaultproxy=true)的那些设置上有这个设置,但 fiddler 仍然没有捕获任何服务调用 @JohnIdol:布尔值对于 ASP.NET 无关紧要,因为 ASP.NET 在不同的用户帐户中运行。所以“UseDefaultProxy”意味着使用 ASP.NET 用户帐户的默认代理。但是当 Fiddler 运行时,它是您的用户帐户的默认代理,而不是 ASP.NET 帐户。您必须将 defaultproxy 属性显式设置为指向 127.0.0.1:8888 明确设置代理(根据编辑)起到了作用 - 感谢您的帮助!【参考方案2】:

如果你想在你的开发机器上查看你的网站和你的 web 服务之间的 http 流量,并且不想改变你的 machine.config。

一个简单的解决方案是更改您网站的应用程序池标识以使用您自己的当前登录用户的凭据。这意味着您的网站将采用您的代理设置,现在将重定向到 Fiddler。

【讨论】:

我该怎么做呢?在我的 IIS 中只有这些选项:LocalService、LocalSystem、NetworkService 和 ApplicationPoolIdentity -> 应用程序池 -> 选择应用程序池 -> 高级设置 -> 身份 -> 自定义帐户 -> 输入您的凭据【参考方案3】:

确保您(从 IE)调用的 Web 服务不是 http://localhost/yourwebservice

Fiddler 不会拦截来自 IE 的 localhost 流量,请改用http://machinename/yourwebservice。

【讨论】:

我有一个 IP:portNo/mywebservice - Web 服务没有托管在我的本地机器上 不知道 Fiddler 不会捕获 Localhost 流量。非常感谢。【参考方案4】:

大约一周前我遇到了这个问题。试试这个页面:http://docs.telerik.com/fiddler/Observe-Traffic/Troubleshooting/NoTrafficToLocalhosthttp://www.fiddler2.com/fiddler/help/hookup.asp#Q-LocalTraffic

ipv4.fiddler 是对我有用的部分。希望这会有所帮助。

【讨论】:

我看到本地流量,但没有看到我正在寻找的 SOAP 请求/响应 - Web 服务未在本地托管(它是另一个团队提供的沙箱,我通过局域网上的镜像访问)跨度> 【参考方案5】:

您可能正在为这些 http 请求使用 80 以外的端口。我记得设置了一个反向代理来查看我在开发期间在本地计算机上发出的 WCF 请求。这是文档: http://www.fiddlertool.com/fiddler/help/reverseproxy.asp

【讨论】:

【参考方案6】:

你可以试试下面的 -

    尝试停止 windows 防火墙,看看会发生什么 尝试使用 firefox 并将流量重定向到 fiddler,看看会发生什么

【讨论】:

thx,已经尝试过 firefox 和 chrome(它总是使用 chrome,但是当它停止工作时,我尝试使用 FF 和 IE)- 没有区别。明天将再次尝试使用 Win firewall down 1st thing 并报告。 你试过停止windows防火墙吗?

以上是关于Fiddler 没有从 ASP.NET 网站嗅探 SOAP 流量的主要内容,如果未能解决你的问题,请参考以下文章

Web调试工具Fiddler——网站抓包分析

ASP.NET 网站项目从开始(构建)到结束(运行时)如何实现自动生成的 ASP 命名空间?

从 IIS 获取我托管的 Asp.Net 网站的运行会话计数

Fiddler/Charles 没有在 ubuntu 上解密 ssl

旧的 Asp.Net 网站项目 - 没有项目文件?

我可以通过 Visual Studio 从 ASP.NET 网站导出生成的 html 页面吗?