我正在尝试通过
在我的服务器上下载一个zip文件WebClient.DownloadFileAsync(new Uri(DownloadLink),
Path.GetFileName(DownloadLink));
我已将事件链接到下载已完成且进度已更改,当下载达到99%时,它会停止。所以我给它一分钟,然后它给了我一个例外:
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 ---
我很难过。我可以在浏览器上下载文件。
答案 0 :(得分:0)
我没有直接回答你的问题,但我会尝试一些事情,看看能不能确定问题。
首先,摆脱异步调用,然后调用DownloadFile
。错误是否仍然发生?
调用DownloadData
获取字节数组中的数据,然后保存文件。
如果上述任何一个或两个都有效,那么我会说你的DownloadDataCompleted
事件处理程序出了问题,尽管为什么抛出WebException
超出了我的范围。
哦,还有一件事:你确定Path.GetFileName(DownloadLink)
正在返回一个有效的文件名,并且你具有在当前目录中写入文件的必要权限吗?
答案 1 :(得分:0)
如果DownloadLink返回类似404的错误,您将收到WebException。放入一个断点并检查进入该方法的实际路径。
编辑:如果DownloadLink是一个url字符串,请检查您是否正在转义'/'。试试@“......”