【问题标题】:Fiddler Not Capturing WCF traffic but capturing ASMX fineFiddler 不捕获 WCF 流量但捕获 ASMX 很好
【发布时间】:2013-10-01 04:49:54
【问题描述】:

我一直在使用 Fiddler 为一些调用其他 ASMX 服务的 ASMX 服务捕获流量。在这种情况下,我有一个简单的 WCF 服务调用这些 ASMX 服务。它不会捕获任何流量。唯一的问题是它使用的是 IIS 而不是 IISExpress (http://localhost/Interface12Service/Interface12Service.svc)。如何捕获 WCF 流量?

【问题讨论】:

    标签: wcf fiddler


    【解决方案1】:

    Microsoft .NET 框架经过硬编码,可以绕过对http://localhost 的任何请求的代理。要在 Fiddler 或任何其他代理中捕获此类请求,请使用

    http://machinename:port/

    http://localhost.fiddler:port/

    作为目标 URL。

    【讨论】:

    • 我不想相信这就是答案……或者它甚至会起作用……但确实如此!
    【解决方案2】:

    默认情况下,Fiddler 不会捕获流量。如果您希望它捕获流量,请将客户端代理基地址更改为您的机器名称或您的 IP(例如:127.0.0.1)。这应该可以解决问题。如果没有,请尝试this

    【讨论】:

    • 或者,您也可以使用 WireShark 或尝试Charles proxy
    • Charles 也是一个代理,并且受到与任何其他代理完全相同的限制。
    【解决方案3】:

    可能只是提琴手难以从本地主机获取流量
    试试把地址改成http://localhost./Interface12Service/Interface12Service.svc

    (注意 localhost 后面的点。)这是使用 Fiddler 的常见技巧。

    【讨论】:

    • 如果我正在调试 IIS 服务并且它直接进入 IIS 测试客户端,如何设置?无法更改 URL。
    【解决方案4】:

    另一个可能的问题与WCF 客户端有关(这也可能包括其他客户端,但我不确定)。 可以将客户端配置为不使用机器默认代理,这使得客户端/应用程序绕过 Fiddler 捕获。

    进一步阅读:What is the purpose of usedefaultwebproxy in WCF.

    【讨论】: