【问题标题】:Capturing traffic by fiddler in .net 4.5在 .net 4.5 中通过提琴手捕获流量
【发布时间】:2013-01-05 10:05:13
【问题描述】:

我在 VS2010 上编写了发送 httpwebrequest 的简单应用程序,并且没有任何配置的提琴手捕获了这个请求。但是之后,我安装了 VS2012 并运行 fiddler,当我发送请求时,我有异常“操作超时”并且请求没有被捕获。当我关闭提琴手时,所有请求都会发送。 我删除了 VS2012 和 .net framework 4.5。在该请求被发送和 fiddler 捕获它们之后。
为什么 fiddler 安装 .net4.5 时不抓流量?

【问题讨论】:

  • 您需要提供更多详细信息; Fiddler 在安装 .NET4.5 的情况下工作得很好,我每天都在那里使用它。您的 machine.config 或 app.config 是否指定了代理?如果您的客户请求127.0.0.1:8888,会发生什么?
  • 我来自 Microsoft .NET Framework 兼容性团队。我们无法重现该问题。如果您能够重现该问题,请通过 Microsoft dot com 的 netfx45compat 联系我们。谢谢

标签: httpwebrequest fiddler


【解决方案1】:

您是否尝试过设置 HttpWebRequest 的 Host 属性? 这可能是您的问题的原因。

我也安装了 .NET 4.5 并遇到了同样的情况。 当提琴手运行 并且 充当代理时,我得到了同样的错误。错误是:

System.Net.WebException:操作已超时 System.Net.HttpWebRequest.GetResponse()

这是一个重现问题的简单示例:

using System;
using System.IO;
using System.Net;

namespace WebRequestTest
{
    class Program
    {
        static void Main(string[] args)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.microsoft.com");
            request.Host = "www.microsoft.com";//If I comment this line, capturing with fiddler works OK.
            request.Method = "GET";
            request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0";

            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            using (Stream stream = response.GetResponseStream())
            using (StreamReader sr = new StreamReader(stream))
            {
                string content = sr.ReadToEnd();
                Console.WriteLine(content);
            }
        }
    }
}

就我而言,我只需要评论request.Host="www.microsoft.com" 行,一切正常。

我怀疑在使用 fiddler 以外的 HTTP 代理时也会发生同样的行为,但我还没有测试过。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-08
    • 2013-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多