私は現在、私のプロジェクトの1つで本当に奇妙な問題に直面しています。
FTPごとにいくつかのファイルをアップロードするために、コードにTamirGalのSharpSSHライブラリを実装しました。コードをデバッグモードで実行すると、すべてが正常に機能します。しかし、ソリューションをビルドして、そのビルドバージョンで試してみると、System.IO.IOExceptionが発生します。
Tamir.SharpSsh.jsch.JSchException: Session.connect: System.IO.IOException: End of IO Stream Read at Tamir.SharpSsh.jsch.IO.getByte(Byte[] array, Int32 begin, Int32 length)
at Tamir.SharpSsh.jsch.Session.read(Buffer buf)
at Tamir.SharpSsh.jsch.User.Auth.start(Session session)
at Tamir.SharpSsh.jsch.UserAuthNone.start(Session session)
at Tamir.SharpSsh.jsch.Session.connect(Int32 connectTimeout)
at Tamir.SharpSsh.jsch.Session.connect(Int32 connectTimeout)
at Tamir.SharpSsh.jsch.SshBase.ConnectSession(Int32 tcpPort)
at Tamir.SharpSsh.jsch.SshBase.Connect(Int32 tcpPort)
at Tamir.SharpSsh.jsch.SshBase.Connect()
データストリームに問題があるようです(Hello Captain Obvious!:))。そのため、プログラムはConnectメソッドを終了することすら確立していません。デバッグ中にすべてが機能する理由がわかりません。dllは、ビルドプロセスで正しくコピーされます。
コードは次のようになります。
sftpClient = new Sftp(this.ftpHost, this.ftpUser, this.ftpPassword);
sftpClient.Connect();
すべての変数には正しい値があり、Filezillaなどのクライアントでそれらを使用してSFTPサーバーに接続できます。
誰かが私にヒントを与えることができるか、または同様の問題を抱えているならば、私はすべてのコメントに非常に感謝するでしょう。
よろしくお願いします。良い一日を。