0

FTP に接続してファイルをダウンロードする必要がありますが、接続できません。資格情報を指定し、ブラウザ経由で接続できますが、.NET 経由では接続できません。

        FtpWebRequest downloadRequest = (FtpWebRequest)WebRequest.Create(ftpSite + "/" + TOC);
        downloadRequest.Method = WebRequestMethods.Ftp.DownloadFile;
        downloadRequest.Credentials = new NetworkCredential(userName, pass);
        FtpWebResponse response = (FtpWebResponse)downloadRequest.GetResponse(); //execption thrown here
        Stream responseStream = response.GetResponseStream();
        StreamReader reader = new StreamReader(responseStream);

        reader.ReadLine();

        while (!reader.EndOfStream)
            data.Add(reader.ReadLine());

        reader.Close();

407 エラーがスローされますがWebException、その理由はよくわかりません。上司も困っています。洞察はありますか?

4

3 に答える 3

1

コマンドライン FTP クライアントを使用して実行しようとしましたか?

表示されたエラー メッセージで問題がすでに説明されていると思います。プロキシを使用して認証する必要があるアプリケーション レベルのファイアウォールの背後にいます。お使いのブラウザーは、おそらくこれを行うように既に構成されています。ネットワーク管理者に相談してください。

于 2012-04-05T19:19:22.930 に答える
1

ほとんどの場合、認証が必要な FTP プロキシの背後に座っています。

初期化してみる

downloadRequest.Proxy

適切なプロキシ資格情報を使用して、たとえば次のようなもの

WebProxy proxy = new WebProxy("http://proxy:80/", true); 
proxy.Credentials = new NetworkCredential("userId", "password", "Domain"); 
downloadRequest.Proxy = proxy;
于 2012-04-05T19:20:01.747 に答える
0

要素をapp.config <defaultProxy />/ web.config の下<system.net>に配置すると、useDefaultCredentials="true"うまくいく場合があります。ネットワークの設定によっては、これにより、アプリでプロキシ アカウントの詳細をハードコードする必要がなくなる場合があります。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.net>
    <defaultProxy useDefaultCredentials="true" />
  </system.net>
</configuration>
于 2012-08-02T23:09:54.907 に答える