c# - GetWebResponse 在 Windows 7 上非常慢

标签 c#

我已经尝试了所有的设置,我在互联网上发现可以使 C# webclient 在 Windows7 机器上运行得更快 无济于事。 Windows XP 机器上的相同 exe 对每个请求的响应时间少于 100 毫秒。

我已经覆盖了派生类中的 GetWebRequest 函数 System.Web.Services.Protocols.SoapHttpClientProtocol

    protected override WebRequest GetWebRequest(Uri address)
    {
        //ServicePointManager.UseNagleAlgorithm = false;
        HttpWebRequest.DefaultWebProxy = null;
        ServicePointManager.DefaultConnectionLimit = 4096;
        ServicePointManager.Expect100Continue = false;
        System.Net.ServicePointManager.CheckCertificateRevocationList = false;
        HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);
        request.Proxy = HttpWebRequest.DefaultWebProxy;

        return (WebRequest)request;
    }

protected 覆盖 WebResponse GetWebResponse(WebRequest 请求) {

        HttpWebResponse response = null;
        //HttpWebRequest.DefaultWebProxy = null;
        //ServicePointManager.Expect100Continue = false;
        response = (HttpWebResponse)base.GetWebResponse(request);
        return response;
    }

我还在 machine.config .Net4.0 文件夹中添加了套接字跟踪设置 它总是在输出窗口中等待下面的语句 7-15 秒

System.Net.Sockets Verbose: 0 : [6088] Socket#54042743::Receive()

希望一些冠军已经解决了这个问题

最佳答案

尝试使用 GetResponse 类并检查您是否发现一些差异:

HttpWebRequest wrequest = (HttpWebRequest) WebRequest.Create(objeto.Url);

//Get Response
HttpWebResponse wresp = (HttpWebResponse) wrequest.GetResponse();

//get Response Stream
StreamReader sr = new StreamReader(wresp.GetResponseStream());

//Get string content
string respuestastring = sr.ReadToEnd();

关于c# - GetWebResponse 在 Windows 7 上非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16392764/

相关文章:

c# - 性能 : should I make one or multiple queries to database

c# - 调用失败,参数为空

c# - 在 C# 中转换异常

c# - 如何从 HEX Windows 8 应用程序获取 System.Windows.Media.Color

c# - XML序列化查询

c# - 使用 LINQ 将类的字段复制到字典列表中

c# - 在 URL 或 Session 或其他中存储语言

c# - 尝试解析日期时出错

c# - 解释System.Net.IPAddress的实例属性

c# - 对象属性不正确时的 Wcf (400) Bad Request