2017-09-21 8 views
0

私のC#プロジェクトでは、SFTPサーバーに接続するためにChilkatDotNet2.dllを追加しました。今のところ、私は次のようなシンプルな接続方法implemtしようとしています:ChilkatDotNet2:サーバーに接続SFTP

Chilkat.Ftp2 F = null; 
F = (Chilkat.Ftp2)new Chilkat.Ftp2(); 
F.Hostname = "sftp.domain.com"; 
F.Username = "username"; 
F.Password = "password"; 
F.Port = 22; 
F.AuthTls = true; 

if (!(F.Connect())) { 
    MainFrm.set_AlertMessage(F.ConnectFailReason); 
} 

をし、それが常に接続失敗し、私は常に接続

を意味し、エラー200を得るが、受信に失敗しましたFTPサーバーからの挨拶

Chilkatの文書による。

私には何が欠けていますか?私は単純なftpサーバテスト(SSL/TLSなし)に接続しようとしました。正しく接続されているので、何か不足していると思います。 FilezillaでSFTPサーバーに接続しようとすると、私が与えた資格情報は正しいです。 ありがとうございます。

UPDATE

Chilkat.SFtp v_SFTP = null; 
v_SFTP = (Chilkat.SFtp)new Chilkat.SFtp(); 
if (v_SFTP.Connect("sftp.domain.com", 22) { 
    if (v_SFTP.AuthenticatePw("username", "password")) { 
     IDVariant v_SUCCESS = null; 
     bool v_SUCCESS = v_SFTP.InitializeSftp(); 
    } 
} 
else { 
    MainFrm.set_AlertMessage(v_SFTP.LastErrorText); 
} 
+0

200は完了しており、接続が良好であることを示しています。したがって、サーバーは挨拶を送信しませんでした。サーバーが挨拶を送信しなかった可能性があります。あなたがFilezillaでログオンしたときに挨拶をしましたか? – jdweng

+0

私はwiresharkやfiddlerのようなスニファを使い、ChilkatDotNet2とFilezillaの両方の接続をキャプチャします。私はあなたがhttpヘッダーを見逃していると思いますが、わかりません。 – jdweng

+0

@jdweng:ご返事ありがとうございます。あなたが私に提案したことをやろうとしていますが、Fiddlerが.NETコードを実行しているWebアプリケーションやFileZillaからFTOに関する情報を取得できないようです。とにかく、私はCassiniを使用して、Webアプリケーションを展開する前にローカルでテストしなければなりません。これが問題だろうか? –

答えて

1
F = (Chilkat.Ftp2)new Chilkat.Ftp2(); 

Chilkat.Ftp2 FTPクライアントです。 FTPプロトコルをサポートしています。 SFTPはまったく異なるプロトコルであり、まったく同じような名前が付けられています。

Chilkatを使用してSFTPサーバーに接続する場合は、Chilkat.SFtpをご覧ください。

+0

ありがとう、あなたの非常に種類。今私は良く理解していますが、私は事態が悪化していることを恐れています。あなたが提案したコードを書きましたが(私の更新された答えを見たい場合)、このエラーメッセージが表示されます:「製品はロックされていません。それでチルカットは無料ではないことが分かります。私は単純なFTPで試したときになぜこれを知らなかったのかわかりません。開発者テストライセンスはありませんか? SQL Server 2016 Devのように。それがうまくいくとわかったら、私の上司にライセンスを購入するように説得しようとします。 –

+0

私はC#開発者ではなく、図書館を勧めたいという要望はここにありません。つまり、Chilkat以外のC#SSH/SFTPクライアントがあります。 – Kenster

関連する問題