当我尝试我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。

希望这可以帮助别人。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top