リモート FTP からファイルを読み取って移動するコンソール アプリケーションを作成しました。コードを本番環境にデプロイするまで、すべてが順調に進みました。
FTP に接続するときに最初に要求するのは、両方の環境で機能する listDirectory です。その後、ルートからファイルを移動しようとしましたが、それは開発環境でしか機能しません!? 本番環境では、次のエラー コードが表示されます:「リモート サーバーが処理中にエラー (451) ローカル エラーを返しました」
1 つのファイルを移動するためのコードを次に示します。
var uri = new Uri("ftp://ftp.example.com/test.xml");
var request = (FtpWebRequest)WebRequest.Create(uri);
request.Credentials = new NetworkCredential(_username, _password);
request.UsePassive = true;
request.Method = WebRequestMethods.Ftp.Rename;
request.RenameTo = "/folder/test.xml";
(FtpWebResponse)request.GetResponse();
コマンドラインを使用して、本番環境でファイルを移動できることにも言及する必要があります。
ftp ftp.example.com
ユーザー名: .....
パスワード: .....
test.xml の名前を変更 /folder/test.xml
250 ファイルの名前変更または移動が成功しました
私はアイデアを使い果たしたので、すべての助けに感謝します!
PS。両方の環境で同じ資格情報を使用して同じ FTP ホストに接続し、両方の環境でファイルを読み取ることもできます。