2

FTP経由でファイルを取得する次のコードがあります。

        try
        {
            FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverPath);

            request.KeepAlive = true;
            request.UsePassive = true;
            request.UseBinary = true;

            request.Method = WebRequestMethods.Ftp.DownloadFile;
            request.Credentials = new NetworkCredential(username, password);

            using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
            using (Stream responseStream = response.GetResponseStream())
            using (StreamReader reader = new StreamReader(responseStream))
            using (StreamWriter destination = new StreamWriter(destinationFile))
            {
                destination.Write(reader.ReadToEnd());
                destination.Flush();
            }

            return 0;
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

これはほとんどの場合に機能しますが、例外が発生するクライアント マシンが 1 つあります。

The remote server returned an error 403: Forbidden

なぜこれが当てはまるのか、誰か教えてもらえますか?すべてのクライアントで実行されているのとまったく同じコードですか (同じユーザー名とパスワードを含む)?

4

2 に答える 2

1

私が提案できる唯一のことは、Wireshark をインストールし、クライアントとサーバーの間で何が送信されているかを正確に監視し、それを異なるマシン間で比較することです。必要に応じて、FTP と IE の間でより類似したメッセージを取得するには、要求のユーザー エージェントを変更します。IP ベースのアクセス許可など、ファンキーなネットワークはありますか?

于 2010-07-01T17:15:19.560 に答える