首页 文章

有没有办法配置Fiddler来拦截来自Windows服务的HTTP调用?

提问于
浏览
18

我们正在替换使用VS2005构建的旧(5年)Windows服务应用程序,该应用程序进行HTTP GET调用 . 有几件事情使这很困难(例如网络服务器在客户的网络上,我们无法直接连接到它),不幸的是,我们不想取消正在运行的系统来用WinForm取代它Fiddler可以监控的版本 . 新代码似乎正在正确地执行所有操作,但是,唉,它无法进行身份验证 .

有没有办法配置Fiddler(2.2.9.1)来拦截来自Windows服务的HTTP调用?

5 回答

  • 3

    Codeka提供了一条线索,让我朝着正确的方向前进 . 仍然缺少的部分是如何配置代理 . <appname>.exe.config 需要添加如下所示的部分:

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

    完成此操作后,Windows服务的http流量开始流经Fiddler .

  • 5

    Fiddler只是充当HTTP代理,因此如果您可以在服务中配置代理,那么您可以将其配置为通过Fiddler . 是否可能很难说......

    如果那不实际连接到Fiddler . 然后,Fiddler会在记录请求/响应后将连接转发到真实的www.example.com .

    我没有测试过上面的内容,但我认为它会起作用 . 显然,如果您可以在服务中配置更容易的代理设置!

  • 35

    而且,当然,如果Fiddler总是't work there' . 作为提示,在Wireshark中使用几个过滤器(例如,仅显示去往或来自目标IP的数据包),以避免感觉您被数据溢出 .

  • -1

    由于.NET绕过localhost和127.0.0.1的代理,只需硬编码您的机器名称,而不是您正在测试的URL .

    //myUrl = "http://127.0.0.1/myservice";
    myUrl = "http://mymachine/myservice";
    
  • 3

    注意:重要说明:无论其他设置如何,.NET始终会绕过包含localhost的URL的Fiddler代理 . 因此,不要使用localhost,而是更改代码以引用计算机名称 . 例如:

    此URL不会出现在Fiddler中:

    http://localhost/X509SignCodeService/X509SigningService.asmx此URL将出现在Fiddler中:

相关问题