首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在某些计算机上显然忽略了.NET HttpWebRequest超时

问在某些计算机上显然忽略了.NET HttpWebRequest超时
EN

Stack Overflow用户
提问于 2011-08-30 12:40:13
回答 1查看 654关注 0票数 2

我们使用HttpWebRequest对象在应用程序的服务器和客户端部分之间交换数据。当服务器的IP无法到达或无效时(这是会发生的事情,并且应该发生),客户机要么在3秒后停止等待(这是我设置的超时时间),要么继续等待长达一分钟,这取决于它在哪台计算机上运行!守则如下:

代码语言:javascript
复制
HttpWebRequest webRequest = null;
WebResponse webResponse = null;
webRequest = (HttpWebRequest)WebRequest.Create(serverURL);
webRequest.Timeout = 1000 * 3; //3 seconds
webRequest.ReadWriteTimeout = webRequest.Timeout;
webRequest.AllowWriteStreamBuffering = true;
//Adding headers here; code removed
webRequest.Proxy = null;
webResponse = webRequest.GetResponse();

按照我在这个网站和其他网站上发现的使请求更快的建议,我还将ReadWriteTimeout属性设置为null并将代理设置为null。虽然它在我自己的电脑和其他我试过的电脑上3秒后就正确地停止了,但在另一些计算机上,它要到大约40秒后才会停止。我重复,如果它试图连接到无效的地址(例如子网中不存在的IP ),并且“使用正确的IP”不是一个可接受的解决方案(我可以解释原因,但我认为它将偏离主题),就会发生这种情况。如果它连接到一个确实存在的IP,数据交换就会像它应该的那样快速。

有人见过类似的东西吗?

EN

回答 1

Stack Overflow用户

发布于 2011-08-30 12:56:13

我不知道为什么会发生这种情况,但我认为如果您有IP (而不是域名),可以使用ping作为解决方案:

代码语言:javascript
复制
Console.WriteLine(new Ping().Send(IPAddress.Parse(ipAddress)).Status);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7243269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档