2017-06-22 12 views
-1

私はASP.NETを通じてSFTPを使用してサーバーにファイルを転送するためにSharpSshを使用しています。SFTPを使用してASP.NETを使用してサーバーにファイルをアップロードするにはどうすればよいですか?

以下は私のソースコードです。しかし、私はエラーを取得しています!

using System.Collections; 
    using System.Threading; 
    using System.IO; 
    using Tamir.SharpSsh; 
    using Tamir.Streams; 

    protected void btnUpload_Click(object sender, EventArgs e) 
    { 
     if (fuUploadFile.HasFile) 
     { 
      string _ftpURL = "ftp://22.00.333.444/"; 
      string _UserName = "admin";  
      string _Password = "admin123"; 
      int _Port = 22;     
      string _ftpDirectory = "/TestFTP"; 
      string LocalDirectory = 
      Server.MapPath(fuUploadFile.PostedFile.FileName); 
      string FileName = fuUploadFile.FileName;;  

      Sftp oSftp = new Sftp(_ftpURL, _UserName, _Password); 
      oSftp.Connect(_Port); 
      oSftp.Put(LocalDirectory , _ftpDirectory + "/" + FileName); 
      oSftp.Close(); 
     } 
    } 

コードを実行しようとすると、次の例外が表示されます。この例外を解決する方法を教えてください。

System.Net.Sockets.SocketException: The requested name is valid, but no data of the requested type was found 
    at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6) 
    at System.Net.Dns.GetHostByName(String hostName) 
    at Tamir.SharpSsh.java.net.Socket..ctor(String host, Int32 port) 
    at Tamir.SharpSsh.jsch.Util.createSocket(String host, Int32 port, Int32 timeout) 
+0

を難読化しましたか?もしそうでなければ、それは無効です。 –

+0

また、私が見たすべての例には、 'ftp://'プレフィックスはありません。 –

+0

なぜすべての変数の前にアンダースコアを置いていますか?これは通常のC#規則に従わない。 – mason

答えて

0

Tamir.SharpSsh.Sftpコンストラクタの引数sftpHostは、IPアドレスまたはホスト名ではなく、URLを取ります。それはURLを取った場合でも、それはsftp://、ないftp://だろう。

だから、次のようになります。

Sftp oSftp = new Sftp("22.00.333.444", _UserName, _Password); 

しかし、もちろん22.00.333.444の有効なIPアドレスではありません。


SharpSSHの使用を強くお勧めします。それは死んだプロジェクトです。

代替案については、以下を参照してください。あなたは、IPこと

+0

リンクを共有したり、SFTPを実装するために何を使用するべきかを教えてください。 –

+0

「SFTP .NET」についてはGoogleだけです。 OK、私はあなたのためにそれをやった、私の編集された答えを見てください。 –

関連する問題