【问题标题】:Fiddler doesn't capture traffic from my C# appFiddler 没有从我的 C# 应用程序中捕获流量
【发布时间】:2023-10-12 17:54:02
【问题描述】:

我尝试在 Windows 10 x64 和 Windows 7 Ultimate x86 上作为来宾在 Oracle VM 上使用 Fiddler,在 Win 10 上也尝试使用 Fiddler2 和 Fiddler4、FiddlerCore 和 Charles 代理。

那些(Fiddler2、4、Core 和 Charles 代理)捕获来自我的浏览器的所有流量,甚至包括 Visual Studio 更新请求(或一些与 VS 对话的微软服务器),但上述所有设置都无法捕获来自我的应用程序的流量 - 从调试或已发布文件夹运行,或直接从 VS 调试器运行,无论是 x64 还是 x86。

我使用 VS 2015,针对 .net 4.5 此外,我在主机操作系统(win 10)上没有完整的管理员权限,这可能是个问题。

首先和/或以管理员身份启动 Fiddler 将不起作用。以管理员身份启动我的应用程序或 VS 也不起作用。

编辑 machine.config 不起作用,甚至没有 .net 部分(可能在 win10 中),我修改了 .web 部分。

是否有一个库可以在应用级别而不是操作系统级别记录请求和响应?

【问题讨论】:

  • 那是什么应用程序?这会进行任何 http 调用吗?
  • 是的,只有 Http 的,通过原始 rwquests 的 GET 和 POST。
  • 尝试了这两种解决方案均无济于事。
  • 你还是没有回答我的第一个问题。那是一个什么样的应用程序? Winforms/Wpf/Console/Windows 应用商店?

标签: c# fiddler fiddlercore


【解决方案1】:

您的请求没有通过系统的代理(Fiddler 对其进行了修改,这就是它拦截您的流量的方式)。您可以通过多种方式配置您的 .NET 应用程序以通过其中一种方式。 Fiddler documentation 指定它。

但基本上:

  1. 在您的 exe 配置中指定一个代理:

    <configuration>
     <system.net>
      <defaultProxy>
       <proxy bypassonlocal="false" usesystemdefault="true" />
      </defaultProxy>
     </system.net>
    </configuration>
    
  2. 在请求中手动指定:

    objRequest = (HttpWebRequest)WebRequest.Create(url);
    objRequest.Proxy= new WebProxy("127.0.0.1", 8888);

此外,大多数 .NET 类在访问 localhost 时会绕过代理。在这种情况下,使用ip4.fiddler 作为主机而不是localhost(或ipv6.fiddle 用于IPv6)

【讨论】:

    最近更新 更多