タイトルのライブラリを使用してこの問題をトラブルシューティングする例を数多く見てきました。SHOULDが機能することがわかっている一般的な例は次のとおりです。
string destinationPath = PathInfo.FileNameConvention;
using (FileStream fileStream = File.OpenRead(sourcePath))
{
using (Stream ftpStream = FTPClient.OpenWrite(string.Format("'{0}'", destinationPath), FtpDataType.ASCII))
{
fileStream.CopyTo(ftpStream);
}
}
このコードを実行すると、ftpTrace ログに名前の長さのエラーが表示されます。宛先パスのみを使用すると、タイムアウト エラーが発生します。メインフレーム MVS OS に送信しています。正常に接続してログインできます。ftpclient.execute メソッドを介してサイト コマンドを送信できます。好奇心から、execute メソッドを介して put コマンドを送信しようとしたところ、put の不明なコマンドが取得されました。この問題を抱えている人もいますか?
また、cmdプロンプトftpを介してファイルを手動で送信し、成功したため、接続は正常に機能します。
背景情報として、ライブラリの OpenWrite メソッドは、送信されたパスを使用して STOR コマンドを送信し、デフォルトでバイナリ タイプになります。