質問

私は私の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を達することができなかったように、セキュア行われていた。

クイックテストは、ボックス上のブラウザを使用し、URLにナビゲートすることができるかどうかを確認することです。

これは誰かに役立ちます願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top