【发布时间】:2014-02-04 09:34:02
【问题描述】:
我们的控制台应用程序每分钟向 Facebook 发出数百个 WebRequest(使用多个应用程序和数百个访问令牌)。现在,他们开始失败,标题中出现异常消息(“请求被中止:请求被取消”)。我们在互联网上搜索了几个小时,尝试了所有可能的解决方案,但没有任何帮助。
这些没有帮助:
webRequest.Timeout = 20000; //A request that didn't get respond within 20 seconds is unacceptable, and we would rather just retry.
webRequest.KeepAlive = false;
webRequest.ProtocolVersion = HttpVersion.Version10;
webRequest.ServicePoint.Expect100Continue = false;
有人有其他想法吗?
编辑:
ToString 的异常:System.Net.WebException:请求是 aborted:请求被取消。 ---> System.Net.WebException: 请求被取消 System.Net.ServicePointManager.FindServicePoint(Uri 地址,IWebProxy 代理,ProxyChain&链,HttpAbortDelegate& abortDelegate,Int32& abortState) 在 System.Net.HttpWebRequest.FindServicePoint(Boolean forceFind) 在 System.Net.HttpWebRequest.DoSubmitRequestProcessing(异常& 异常)在 System.Net.HttpWebRequest.SetResponse(Exception E) --- 内部异常堆栈跟踪结束 --- 在 System.Net.HttpWebRequest.GetResponse() 在 WebException 消息: 请求被中止:请求被取消。
edit2:我们还没有达到极限。我们知道当这种情况发生时, 问题不在于。我们已经做了两年了, 而这件事在整个过程中只发生过两次。每 AccessToken 我们每分钟只做 2-3 个请求,并且节流 在 Facebook 上是 600 个请求/访问令牌/IP。
edit3:我想为有这个或类似问题的人添加一个额外的提示:确保你处理了你的 RequestStream、你的 Response 和你的 ResponseStream 对象。
【问题讨论】:
-
错误信息告诉你什么?你做了什么来找出问题的原因?
-
每分钟向 Facebook 发送数百个请求?您可能因过度使用而被 Facebook 屏蔽。
-
Mike W -> 我们没有被屏蔽。
-
我没有在标题中看到错误信息。好的,这是模糊的。请发布 Exception.ToString() 返回的内容。它包含比这更多的信息。此外,使用 Fiddler 查看完整的 HTTP 请求。
-
dotnetframework.org/default.aspx/4@0/4@0/untmp/DEVDIV_TFS/Dev10/… 我可以看到抛出异常的位置。您是否尝试增加 HTTP 请求限制?默认值为每秒 2 次。
ServicePointManager.DefaultConnectionLimit = 1000;
标签: c# http-error system.net.webexception system.net.httpwebrequest