簡體   English   中英

上傳時webclient超時

[英]webclient timeout while uploading

我知道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在服務器端運行,並設置所有超時/ maxupload值。

異常消息是:

the request was aborted the request was canceled

請幫幫我。

另一個答案中的代碼對我有用,我只將第9行更改為:

((HttpWebRequest)request).Timeout = System.Threading.Timeout.Infinite;

httpWebRequest的默認值是100秒,所以在代碼中沒有設置好的東西。

你試過設置.KeepAlive = true;

MSDN表示將其設置為false即可

使用HTTP / 1.1時,默認情況下啟用Keep-Alive。 將KeepAlive設置為false可能會導致向服務器發送Connection:Close標頭。

這是有道理的,因為您似乎正確設置了超時。 你可以在這里仔細檢查

這個 SO問題也有一個答案,將該錯誤消息鏈接到保持活動屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM