0

ファイルをリモートサーバーにFTPで転送するクラスがあります。コードは次のようになります。

FtpWebRequest oFTPRequest = (FtpWebRequest)WebRequest.Create(sFTPServer + sTargetFolderAndFileName);
oFTPRequest.Method = WebRequestMethods.Ftp.UploadFile;
oFTPRequest.Credentials = new NetworkCredential(sFTPUserName, sFTPPassword);
oFTPRequest.UseBinary = true;

Stream requestStream = oFTPRequest.GetRequestStream();
// uploads file...

開発環境から実行するとすべてが完全に機能しますが、コンパイルしてサーバーに配置すると、FTPエラー「リ​​モートサーバーがエラーを返しました:(530)ログインしていません。」で失敗します。

ユーザー名、パスワード、ftpサーバー、およびパス情報はすべて、開発環境で実行されているコードと同じです。したがって、それらが正しいことはわかっています。

私が見ることができる唯一の2つの違いは次のとおりです。-コードがコンパイルされました-私の(開発)PCはWindows 7 64ビットであり、ターゲットサーバーはWindows200332ビットです

すべて.NET4.0/VS2010を使用

なぜそれは一方に作用し、他方には作用しないのですか?

4

1 に答える 1

0

問題を見つけました。Windows2003ServerはSmallBusinessServerであり、構成の一部はリモートサーバー(domainname.com)と同じ名前を使用していました。したがって、FTP要求が送信されたとき、FTP要求は、に接続する代わりに、それ自体にループバックしてログインに失敗していました。リモートサーバー。

奇妙なことに、Filezillaでは同じ問題は発生しませんでした。

于 2012-11-27T16:23:30.743 に答える