奇怪的情况我在这里,不幸的是我不了解很多关于netstat以外的东西的Windowsnetworking方面:
所以我有一个代理,我已经configuration在我的浏览器(Firefox 42),并运行一个简单的应用程序,通过URL循环通过该代理来调用它们。 这个代理有凭据才能使用它,我知道代理工程。 这是一个Windows 7的盒子。
所以在这个过程中的某个时候,会发生以下情况:
我已经确认了以下内容:
这会导致什么? 它通常发生在与代理4-7通话后,并在30-40分钟后发布问题。
编辑7:
AWS实例也会发生这种情况。 试过这种方法。 ZZZ …
编辑6:
服务器重启也不会消失。 您可以重新启动,15分钟后SAME代理超时。 最终再次工作。
编辑5:
用Java和Python写了一个类似的testing。 同样的结果。
编辑4:这是如何工作的:
Call to Proxy 1... Good! Call to Proxy 2... Good! Call to Proxy 3... Good! Call to Proxy 4... Good! Call to Proxy 1... Good! Call to Proxy 2... Good! Call to Proxy 3... Good! Call to Proxy 4... Good! Call to Proxy 1... Timeout... Call to Proxy 2... Good! Call to Proxy 3... Good! Call to Proxy 4... Good! Call to Proxy 1... Timeout... Call to Proxy 2... Good! Call to Proxy 3... Good! Call to Proxy 4... Good! Call to Proxy 1... Timeout... Call to Proxy 2... Good! Call to Proxy 3... Good! Call to Proxy 4... Good! Call to Proxy 1... Timeout... Call to Proxy 2... Good! Call to Proxy 3... Good! Call to Proxy 4... Good! Call to Proxy 1... Timeout... Call to Proxy 2... Good! Call to Proxy 3... Good! Call to Proxy 4... Good! Call to Proxy 1... Timeout... Call to Proxy 2... Good! Call to Proxy 3... Good! Call to Proxy 4... Good! Call to Proxy 1... Timeout... Call to Proxy 2... Good! Call to Proxy 3... Good! Call to Proxy 4... Good! Call to Proxy 1... Timeout... Call to Proxy 2... Good! Call to Proxy 3... Good! Call to Proxy 4... Good! Call to Proxy 1... Timeout... Call to Proxy 2... Good! Call to Proxy 3... Good! Call to Proxy 4... Good! Call to Proxy 1... Timeout... Call to Proxy 2... Good! Call to Proxy 3... Good! Call to Proxy 4... Good! Call to Proxy 1... Good! Call to Proxy 2... Good! Call to Proxy 3... Good! Call to Proxy 4... Good!
编辑3:这些问题看起来非常相似: Http Post WebRequest获取超时
HttpWebRequest和GetResponse在1请求后挂起; 其他解决scheme不适合我
WebRequest.GetResponselocking?
HttpWebRequest超时第二个电话
编辑2:看着Wireshark,我看到在受影响的代理信息的TCP传输。 但是,其他代理在同一时间不会发生吗? 那么来自代理服务器本身呢? 这对我来说没有意义,因为我甚至没有得到回应,甚至没有处理请求。
编辑:添加代码调用代码。 这个方法在一个while循环中被重复调用:
String html = null; HttpWebRequest request = null; WebProxy webProxy = null; try { request = (HttpWebRequest)WebRequest.Create(url); webProxy = new WebProxy(proxyIP, proxyPort); webProxy.Credentials = new NetworkCredential(proxyUser, proxyPass); request.Proxy = webProxy; request.KeepAlive = false; request.Timeout = 5000; request.ReadWriteTimeout = 5000; request.Method = "GET"; request.UserAgent = generateAgentString(); using (WebResponse resp = (WebResponse)request.GetResponse()) { using (Stream strm = resp.GetResponseStream()) { StreamReader reader = new StreamReader(strm, Encoding.UTF8); try { html = reader.ReadToEnd(); } catch { Console.WriteLine("Failed"); html = null; } finally { strm.Flush(); reader.BaseStream.Dispose(); reader.Dispose(); strm.Dispose(); resp.Dispose(); } } } if (request != null) { request.Abort(); } } catch(Exception e) { Console.WriteLine(e); }
经过大量的挖掘,我又重新回到了代理商那里,提供了大量的跟踪信息和挖掘结果,奇迹般地…他们已经决定,他们确实有限制,他们没有透露给买方。
令人震惊的。 我更恼火了,在开始与他们讨论之后,我走了这么远,并得到一个干净的法案健康的结束。
如果任何人需要一个提供商的建议不要使用:)