c# - WebClient.DownloadFileAsync 异常

标签 c# winforms exception webclient

我正在尝试通过以下方式在我的服务器上下载一个 zip 文件

WebClient.DownloadFileAsync(new Uri(DownloadLink),
                            Path.GetFileName(DownloadLink));

我有链接到下载完成和进度更改的事件,当下载达到 99% 时,它停止了。所以我给它一分钟,然后它给了我一个异常(exception):

System.Net.WebException: An exception occurred during a WebClient request. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
   at System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)
   --- End of inner exception stack trace ---
   at System.Net.ConnectStream.EndRead(IAsyncResult asyncResult)
   at System.Net.WebClient.DownloadBitsReadCallbackState(DownloadBitsState state, IAsyncResult result)
   --- End of inner exception stack trace ---

我被难住了。我可以在浏览器上正常下载文件。

最佳答案

对于您的问题,我没有直接的答案,但我会尝试做一些事情,看看是否可以找出问题所在。

首先,去掉异步调用,只调用DownloadFile。错误是否仍然出现?

调用DownloadData获取字节数组中的数据,然后保存文件。

如果上述任何一个或两个都有效,那么我会说您的 DownloadDataCompleted 事件处理程序有问题,尽管抛出 WebException 的原因超出了范围我。

哦,还有一件事:您确定 Path.GetFileName(DownloadLink) 正在返回一个有效的文件名,并且您具有在当前目录中写入该文件的必要权限吗?

关于c# - WebClient.DownloadFileAsync 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3743332/

相关文章:

c# - 如何将日期时间转换为十六进制

wpf - FrameworkElementFactory 必须位于此操作的密封模板中

c# - NHibernate Session.Evict()

c# - 关于自定义按钮

c# - 如何检查用户控件是否在 C# 中的其他控件前面?

c# - 将生成的条形码中的字符串部分加粗

php - 如何正确捕获 Ajax 调用上的 PHP 错误

Python:什么时候 0.0/0.0 =NaN 或 inf ,什么时候会给出异常?

c# - 发送匿名邮件 C#

c# - For 循环增加文本框 ID。 C# 窗体