基础连接已经关闭:接收时发生意外错误
-
22-08-2019 - |
题
当我尝试我win2k8的机器上我的程序运行良好,但在取胜2K3它给了我这个错误的错误消息
下面是”生成错误代码
WebClient wc = new WebClient();
wc.DownloadFile("ftp://ftp.website.com/sample.zip");
有怪异的一部分。如果我禁用防火墙的服务器上完全。该错误消失。但它仍然错误,如果我将程序添加到例外列表,并打开防火墙。
具有搜索天网页,找不到任何解决办法。
解决方案
您应该尝试使用被动模式FTP。 WebClient类不允许的,但确实的FtpWebRequest
FtpWebRequest request = WebRequest.Create("ftp://ftp.website.com/sample.zip") as FtpWebRequest;
request.UsePassive = true;
FtpWebResponse response = request.GetResponse() as FtpWebResponse;
Stream ftpStream = response.GetResponse();
int bufferSize = 8192;
byte[] buffer = new byte[bufferSize];
using (FileStream fileStream = new FileStream("localfile.zip", FileMode.Create, FileAccess.Write))
{
int nBytes;
while((nBytes = ftpStream.Read(buffer, 0, bufferSize) > 0)
{
fileStream.Write(buffer, 0, nBytes);
}
}
其他提示
请发布完整的异常,包括任何的InnerException:
try
{
WebClient wc = new WebClient();
wc.DownloadFile("ftp://ftp.website.com/sample.zip");
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString()); // Or Debug.Trace, or whatever
throw; // As if the catch were not present
}
我有一个类似的问题(无FTP)和不同的溶液
在生产服务器环境已经取得如此安全,服务器无法访问的网址。
快速测试是使用包装盒上的浏览器,看看你是否可以浏览到的URL。
希望这可以帮助别人。
不隶属于 StackOverflow