[英]WebClient timeout error
我创建了一个 class,如下所示。
public class WebDownload : WebClient
{
private int _timeout;
/// <summary>
/// Time in milliseconds
/// </summary>
public int Timeout
{
get
{
return _timeout;
}
set
{
_timeout = value;
}
}
public WebDownload()
{
this._timeout = -1;
}
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest result = base.GetWebRequest(address);
result.Timeout = this._timeout;
return result;
}
}
当我创建这个 class 的 object 时,它会创建一个 Web 客户端 object 并将timeout
设置为 -1,以便它无限等待响应。
但即使在我将timeout
设置为 -1 后,它也会导致超时错误。
有解决方案吗?
我知道你从哪里得到-1
部分,但是在关于Timeout的 MSDN 文章中,它说如果出现以下情况,它将抛出ArgumentOutOfRangeException
:
指定的值小于零并且不是无限的。
默认值为100,000 毫秒(100 秒)。
还有一件事要考虑:
若要指定在读取或写入操作超时之前等待的时间量,请使用ReadWriteTimeout属性。
域名系统 (DNS) 查询最多可能需要15 秒才能返回或超时。 如果您的请求包含需要解析的主机名,并且您将 Timeout 设置为小于 15 秒的值,则可能需要 15 秒或更长时间才能引发 WebException 以指示您的请求超时。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.