所以,我已经为我的程序构建了一个自动更新程序。
此处运行的代码是:
new WebClient().DownloadFile("XXXX", checkingfolder.SelectedPath);
XXX是我的网络服务器,在verio中作为VPS服务器运行,具有最新的IIS和所有内容。
当用户点击下载按钮时,它会显示:
'An exception occurred during a WebClient request.
事情是,我甚至不知道为什么 - 我只是尝试抓住。
这里有人知道为什么会这样吗?
感谢你给我的任何帮助,你不知道你在这里帮助了我多少 - 再次感谢!
答案 0 :(得分:44)
如果我指定,我可以重现这一点,因为在您的示例中似乎是文件夹名称,而不是文件名称目的地。改为提供文件名称。
撇开;如果我查看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");
答案 1 :(得分:3)
有时当另一个类或进程正在访问您刚刚下载的文件时会发生此错误
答案 2 :(得分:2)
如果目录不存在,它会给出异常。
例如路径是 @" j:\ Folder \ SubFolder \ 123.pdf SubFolder 不存在,会引发异常。
答案 3 :(得分:2)
我在尝试下载文件时遇到此错误,其中生成的下载文件路径长度超过某个任意限制
将下载文件的路径名更改为250个字符后,问题就消失了
答案 4 :(得分:1)
除其他答案外,请注意,如果客户端进程不需要创建输出文件的权限,也可能会发生相同的 WebException 。
我建议您采取以下策略:
希望它会有所帮助:-)
答案 5 :(得分:1)
如果目录不存在,此错误消息将显示为 “在WebClient请求期间发生异常” 因为Web客户端找不到用于存储下载文件的文件夹。
希望对您有帮助-:)