【发布时间】:2012-03-03 05:09:32
【问题描述】:
我知道 WebClient 没有超时属性。我四处搜索,发现不同的代码,您可以在其中从 httpwebrequest 继承 webclient 并设置超时例如:
class MyWebClient : WebClient
{
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = base.GetWebRequest(address);
if (request is HttpWebRequest)
{
(request as HttpWebRequest).KeepAlive = false;
(request as HttpWebRequest).Timeout = 25000; //(tried different values)
}
return request;
}
}
但这里似乎没有任何效果。超时恰好在 100 秒后发生。我正在尝试通过我制作的这个客户端应用程序上传大文件。 PHP 在服务器端运行,所有超时/最大上传值都已设置。
异常信息是:
the request was aborted the request was canceled
请帮帮我。
【问题讨论】:
-
如果 keepalive 是真的,你会遇到同样的问题。 False 可以向服务器发送连接关闭头