ファイルをFTPサーバーにアップロードするコンソールアプリケーションを構築しました。このFTPサーバはSFTPプロトコルのみを受け入れるので、私はSSH.NETオープンソースライブラリを使用しています。これは、.NETにメソッドが組み込まれていないためです(.NET 3.5ではVisual Studio 2008 Professionalで使用しています)。SSH.NETを使用してSFTPにファイルをアップロードする:接続できません
私は多くの例を見てきました。私は公開SFTPサーバーに接続し、SFTPプロトコルを使用してファイルをアップロードするためのクイックテストアプリケーションを実装しました。
私はhereから取得した公開無料SFTPサーバーの下に使用しています:
const string host = "demo.wftpserver.com";
const string username = "demo-user";
const string password = "demo-user";
const string workingdirectory = "/upload";
const string uploadfile = @"C:\test.txt";
const int port = 2222;
static void Main(string[] args)
{
try
{
using (SftpClient client = new SftpClient(host, port, username, password))
{
{
client.Connect();
Console.WriteLine("Connected to {0}", host);
client.ChangeDirectory(workingdirectory);
Console.WriteLine("Changed directory to {0}", workingdirectory);
var listDirectory = client.ListDirectory(workingdirectory, null);
Console.WriteLine("Listing directory:");
foreach (var fi in listDirectory)
{
Console.WriteLine(" - " + fi.Name);
}
using (var fileStream = new FileStream(uploadfile, FileMode.Open))
{
Console.WriteLine("Uploading {0} ({1:N0} bytes)", uploadfile, fileStream.Length);
client.BufferSize = 4 * 1024; // bypass Payload error large files
client.UploadFile(fileStream, Path.GetFileName(uploadfile), null);
}
}
}
}
catch (Exception e)
{
Console.Out.WriteLine(e.Message);
}
問題は以下の通りである:
接続しようとすると
server : demo.wftpserver.com
user : demo-user
password : demo-user
port : 2222
そしてここでは、コードですサーバーは以下の文を使用します。
client.Connect();
私は例外があります。例外は、次の言葉:
"Value cannot be null. \r\nParameter name: All lists are either null or empty."
StackTrace " at Renci.SshNet.Session.WaitOnHandle(WaitHandle waitHandle, TimeSpan timeout)\r\n at Renci.SshNet.Session.WaitOnHandle(WaitHandle waitHandle)\r\n at Renci.SshNet.Session.Connect()\r\n at Renci.SshNet.BaseClient.Connect()\r\n at ConsoleApplication2.Program.Main(String[] args) at C:\\Users\\Win7\\Downloads\\ConsoleApplication2\\ConsoleApplication2\\Program.cs:line 61" string
また、私はhereが成功せず説明したようにタイムアウトを変更しようとしています。
しかし、FileZillaクライアントと同じ資格情報を使用して同じSFTPサーバーに接続しようとすると、問題なく接続でき、ファイルをアップロードすることもできます。
私は何が起こっているのか分かりません。誰か助けてくれますか?
更新: 私はこれを見つけましたfixこのパッチは2017年1月22日に開発されましたが、ダウンロード用の最後のバイナリは2016年12月14日です。この修正プログラムを含むバイナリはどうすれば入手できますか?
SharpSSHは死んだプロジェクトです。それを使用しないでください。ウェブサイトもダウンしている、atm。 –
死んでいない。私たちは現在、このプロジェクトで使用しています。 –
最後のバージョンは2011年のもので、2007年以来Webページは更新されていません。現代の暗号をサポートすることさえできません。 –