Fiddler无法捕获来自.Net Core的流量

时间:2018-07-07 06:50:40

标签: https .net-core fiddler

我有一个控制台应用程序,该应用程序通过HTTP / HTTPS调用许多第三方服务,这些服务最初被编写为在.Net Framework下运行。 Fiddler可以与该版本的应用配合使用,捕获所有HTTP和HTTPS流量。

我将应用程序移植到.net Core 2.1,现在Fiddler无法捕获来自该应用程序的任何HTTP / HTTPS通信。

关于Fiddler(v5.0)为什么无法从.Net Core应用捕获流量的任何建议?

2 个答案:

答案 0 :(得分:3)

在.NET Core 2.1中,默认提供程序已从WinHttpHandler更改为完全基于.NET网络堆栈构建的新SocketsHttpHandler。

https://github.com/dotnet/corefx/issues/28603表示Fiddler应该可以正常工作,因此请验证您是否拥有2.1的最新更新,如果仍然无法正常工作,请向github上的corefx报告问题。

答案 1 :(得分:0)

在我的办公环境中,Fiddler仍然不会拦截.NET Core 2.2发出的针对外部资源的请求。我想这是由于我们的本地代理设置所致。

我的解决方法是通过将Fiddler明确定义为HttpClient类要使用的代理来捕获来自.NET Core 2.2的请求:

        var httpClient = new HttpClient(
           handler: new HttpClientHandler
           {
               // 8888 = Fiddler standard port
               Proxy = new WebProxy(new Uri("http://localhost:8888")),  
               UseProxy = true
           }
        );

这可靠地通过Fiddler隧道传输了来自Core的所有请求。