Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HttpWebRequest GetResponse延迟在第一个请求时的正确修复_C#_.net_Proxy_Httpwebrequest_Httpwebresponse - Fatal编程技术网

C# HttpWebRequest GetResponse延迟在第一个请求时的正确修复

C# HttpWebRequest GetResponse延迟在第一个请求时的正确修复,c#,.net,proxy,httpwebrequest,httpwebresponse,C#,.net,Proxy,Httpwebrequest,Httpwebresponse,如前所述 这里呢 由于代理自动检测,HttpWebRequest在第一个请求时挂起。解决方法是设置Proxy=null,但这也会锁定所有使用代理的用户,而sway不是合适的解决方案 那么,有没有人知道如何通过编程修复此初始延迟而不锁定所有代理用户?一种方法是要求用户在Internet explorer选项中关闭代理自动检测 您可以先尝试/捕获调用,将代理设置为null,并在失败的情况下设置代理自动检测。当在http://localhost:9200具有GetResponse和GetRequest

如前所述 这里呢

由于代理自动检测,HttpWebRequest在第一个请求时挂起。解决方法是设置Proxy=null,但这也会锁定所有使用代理的用户,而sway不是合适的解决方案


那么,有没有人知道如何通过编程修复此初始延迟而不锁定所有代理用户?

一种方法是要求用户在Internet explorer选项中关闭代理自动检测

您可以先尝试/捕获调用,将代理设置为null,并在失败的情况下设置代理自动检测。

当在
http://localhost:9200
具有GetResponse和GetRequestStream,并有20秒的延迟

我的问题的原因是在IPv6内。 我的案例的解决方案是本地主机的IPv6地址定义:

转到“C:\Windows\system32\drivers\etc\”文件夹

备份“主机”文件

编辑文件以更改行:

::1 localhost
#127.0.0.1 localhost

您还可以更改行:

::1 localhost
#127.0.0.1 localhost

也许您可以刷新DNS缓存: 以管理员身份启动命令提示符,在命令窗口中键入,然后按enter键: ipconfig/flushdns

在此之前,我尝试了许多在互联网上找到的解决方案,但对我的案例毫无帮助,例如:

  • Proxy=null
  • ServicePointManager.UseNagleAlgorithm=false
  • web.config中的各种更改
    帮助我的是,我们关闭了Internet explorer LAN设置中的“自动检测设置”。其他一切都不起作用,包括重新编写代码以使用HttpClient而不是HttpWebRequest。

    在我的例子中,在本地主机上使用主机文件中的活动IPv6解析请求(DNS)会在第一次请求时产生延迟。你试过这个吗?这不仅仅是我的情况,你可以发现类似的问题[,但是没有人用这个解决方案将问题与GetResponse和GetRequestStream联系起来。但是我要求进行适当的修复,这可以通过编程实现……我想让我的程序修改用户主机文件不是一个好主意,是吗?