我正在尝试通过以下方式在我的服务器上下载一个 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/