FluentFTPでタイムアウトエラー(例外)が発生するときの対応

この記事は公開から3年以上経過しています。

.NETのFTPライブラリFluentFTPで、FTP接続時やFTPコマンド実行時にタイムアウトエラーで例外が発生するときの対応。

問題

FluentFTPでFTP接続する際やFTPコマンド実行中に
Timed out trying to read data from the socket stream!
というタイムアウトエラーで例外が発生する。

原因

FluentFTPライブラリ内のソケットストリームデータ読み取り時に既定のタイムアウトである1,500msを超えた。

ライブラリ内で例外が発生した箇所のソース:
file

対応

実運用環境に合わせて、ReadTimeoutの設定値を適切(長め)に設定する。

サンプルソースコード(C#)

private static void Main(string[] args)
{
    using (var ftpCli = new FluentFTP.FtpClient())
    {
        ftpCli.Host = "FTPホスト名/IP";
        ftpCli.Credentials = new System.Net.NetworkCredential("FTPユーザー名", "FTPパスワード");
        // ここでは例としてReadTimeoutを10分に設定
        ftpCli.ReadTimeout = 10 * 60 * 1000;
        ftpCli.Connect();

        var items = ftpCli.GetListing();
    }
}

参考ウェブサイトなど

  • GitHub
    robinrodricks/FluentFTP

以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする