HttpWebRequest - 操作已超时

时间:2012-09-30 17:27:06

标签: c# .net console httpwebrequest timeout

我正在尝试通过使用HttpWebRequest来调用网页,但是我得到“操作已经超时错误”。

string sURL = "http://localhost:53667/MyPage.aspx";

WebRequest wrGETURL = WebRequest.Create(sURL);
wrGETURL.Timeout = 5000;
System.Net.ServicePointManager.DefaultConnectionLimit = 5000;

var r = wrGETURL.GetResponse();
r.Close();
wrGETURL.Abort();

正如您所看到的,我添加了DefaultConnectionLimit属性,关闭了其他线程建议的响应,但似乎没有这样做。我做错了什么?

修改

当我使用来自http://support.microsoft.com/kb/307023的完整示例时,从Visual C#作为控制台应用程序运行/调试它,它不会超时。当我将此程序设置为在Windows任务计划程序上运行时,它会超时。

2 个答案:

答案 0 :(得分:1)

对于这样一个简单的操作,请改为使用WebClient运行。

它的复杂程度要低得多,而且WebRequest特有的问题就越少。您是否尝试在Visual Studio外部的同一台机器上运行它?

网站是由cassini,iis express,iis 6,iis 7等托管吗?其中一些允许远程连接有特殊设置,而有些设置可能根本不允许远程连接。

IIS Express需要特别的工作 - IIS Express enable external request

卡西尼根本无法做到 - https://serverfault.com/questions/82899/can-i-access-cassini-from-a-remote-machine

答案 1 :(得分:0)

尝试添加此代码:

ServicePointManager.DefaultConnectionLimit = 500;

并发连接可能会导致超时错误。在我的情况下,这很好。