簡體   English   中英

使用C#ASP.NET時,“WebClient請求期間發生異常”

[英]'An exception occurred during a WebClient request" while using C# ASP.NET

所以,我已經為我的程序構建了一個自動更新程序。

這里運行的代碼是:

new WebClient().DownloadFile("XXXX", checkingfolder.SelectedPath);

XXX是我的網絡服務器,在verio中作為VPS服務器運行,具有最新的IIS和所有內容。

當用戶點擊下載按鈕時,它會顯示:

'An exception occurred during a WebClient request.

問題是,我甚至不知道為什么 - 我只是嘗試捕獲。

這里的任何人都知道為什么會這樣嗎?

感謝你給我的任何幫助,你不知道你在這里幫助了我多少 - 再次感謝!

我可以重現這個如果我指定,因為似乎是在你的情況為例, 文件夾名,而不是文件名的目標。 提供文件名。

作為旁白; 如果我查看InnerException ,它告訴我該問題與文件路徑有關:

using(var client = new WebClient())
{
    try
    {
        client.DownloadFile(
            "http://stackoverflow.com/questions/8033619/an-exception-occurred-durning-a-webclient-request-c-sharp-asp-net/8033687#8033687",
            @"j:\MyPath");
    }
    catch (Exception ex)
    {
        while (ex != null)
        {
            Console.WriteLine(ex.Message);
            ex = ex.InnerException;
        }
    }
}

這使:

An exception occurred during a WebClient request.
Access to the path 'j:\MyPath' is denied.

如果我將其更改為文件 ,它可以正常工作:

client.DownloadFile(
    "http://stackoverflow.com/questions/8033619/an-exception-occurred-durning-a-webclient-request-c-sharp-asp-net/8033687#8033687",
    @"j:\MyPath\a.html");

有時,當另一個類或進程正在訪問您剛剛下載的文件時,可能會發生此錯誤

如果目錄不存在,它會給出異常。

例如路徑是@“j:\\ Folder \\ SubFolder \\ 123.pdfSubFolder不存在,它會拋出異常。

我在嘗試下載文件時遇到此錯誤,其中生成的下載文件路徑將長於某個任意限制

將下載的文件的路徑名更改為250個字符后,問題就消失了

除了其他答案之外,請注意如果客戶端進程沒有創建輸出文件所需的權限,也可能發生相同的WebException

我建議你采取以下策略:

  1. 使用.tmp.txt )擴展名將文件下載到唯一的文件名Windows臨時文件夾,以避免寫入權限和其他權限問題
  2. 將臨時文件移動到目標文件夾
  3. 將臨時文件重命名為目標文件名

希望能幫助到你 :-)

如果目錄不存在,則此錯誤消息顯示為“WebClient請求期間發生異常”,因為Web客戶端找不到用於存儲下載文件的文件夾。

希望能幫助到你-:)

暫無
暫無

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

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