繁体   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