如前所述 Why is this WebRequest code slow?和HttpWebRequest GetResponse delay on 64bit Windows
由于代理自动检测,HttpWebRequest在第一个请求时挂起。修复方法是设置代理= null ,但这也会锁定使用代理的所有用户,并且不是正确的解决方案。
那么,是否有人知道如何在不锁定所有代理用户的情况下以编程方式修复此初始延迟?
答案 0 :(得分:1)
您可以先尝试/ catch调用,将代理设置为null,并在失败的情况下使用set proxy autodetection。
答案 1 :(得分:0)
一种方法是要求用户在Internet Explorer选项中关闭代理自动检测。
答案 2 :(得分:0)
我在使用GetResponse和GetRequestStream在http://localhost:9200
发出第一个请求并且延迟时间为20秒时,从ASP.NET(C#)调用Elasticsearch时遇到了类似的问题。
我的问题的原因是在IPv6内。 我的案例的解决方案是注释localhost的IPv6地址定义:
转到“C:\ Windows \ system32 \ drivers \ etc \”文件夹
备份“主机”文件
编辑文件以更改行:
::1 localhost
到
#::1 localhost
你也可以改行:
#127.0.0.1 localhost
到
127.0.0.1 localhost
也许你可以刷新DNS缓存: 以管理员身份启动命令提示符,在命令窗口中键入,然后按Enter键: ipconfig / flushdns
在此之前我尝试了很多我在互联网上找到的解决方案,但对我的情况没什么帮助,例如: