我们的控制台应用程序每分钟都会向Facebook发送数百个WebRequests(使用多个应用程序和数百个访问令牌)。现在,他们开始失败并在标题中显示异常消息(“请求已中止:请求已取消”)。我们在互联网上搜索了几个小时,并尝试了所有可能的解决方案,但没有任何帮助。
这些没有帮助:
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:请求是 已中止:请求已取消。 ---> System.Net.WebException:The 请求被取消了 System.Net.ServicePointManager.FindServicePoint(Uri地址,IWebProxy 代理,ProxyChain&连锁店,HttpAbortDelegate& abortDelegate,Int32& abortState)at System.Net.HttpWebRequest.FindServicePoint(Boolean forceFind)at System.Net.HttpWebRequest.DoSubmitRequestProcessing(例外&安培; 异常)在System.Net.HttpWebRequest.SetResponse(例外E)--- 内部异常堆栈跟踪结束--- at WebException消息中的System.Net.HttpWebRequest.GetResponse():. 请求已中止:请求已取消。
edit2:我们没有达到极限。我们知道什么时候发生, 问题不是那个。我们这样做已经两年了, 这件事在整个时间里只发生过两次。每 AccessToken我们只做2-3次请求/分钟和限制 在Facebook上有600个请求/ accesstoken / ip。
edit3:我想为有这个或类似问题的人添加一个额外的提示:确保你处理你的RequestStream,你的Response和你的ResponseStream对象。
答案 0 :(得分:8)
我可以看到抛出异常的位置。您是否尝试过增加HTTP请求限制?默认值为每秒2次。
ServicePointManager.DefaultConnectionLimit = 1000;