Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过C#Net发送时的SFTP或FTPS_C#_Sftp_Ftps - Fatal编程技术网

通过C#Net发送时的SFTP或FTPS

通过C#Net发送时的SFTP或FTPS,c#,sftp,ftps,C#,Sftp,Ftps,我读了这篇文章: 尽管两者的目标都是 同样的目的。SFTP使用单通道进行传输和传输 接收所有相关数据,而FTPS使用另一个 是为数据动态决定的。FTP在运行时经常出现问题 通过防火墙,因为它不知道正在访问的端口 已由数据使用,并且无法允许通过端口的通信。FTPS 以文本格式发送消息,允许人们阅读日志和 确定会话期间发生了什么。这是不可能的 SFTP,因为消息不是文本,而是二进制的 阅读更多:FTP和SFTP之间的差异| FTPS与SFTP 我不想做任何假设,因为如果我错了,这只会让我的工作更困

我读了这篇文章:

尽管两者的目标都是 同样的目的。SFTP使用单通道进行传输和传输 接收所有相关数据,而FTPS使用另一个 是为数据动态决定的。FTP在运行时经常出现问题 通过防火墙,因为它不知道正在访问的端口 已由数据使用,并且无法允许通过端口的通信。FTPS 以文本格式发送消息,允许人们阅读日志和 确定会话期间发生了什么。这是不可能的 SFTP,因为消息不是文本,而是二进制的

阅读更多:FTP和SFTP之间的差异| FTPS与SFTP

我不想做任何假设,因为如果我错了,这只会让我的工作更困难,但当我通过C#/.Net4发送文件时,如下所示:

  var request = (FtpWebRequest) WebRequest.Create(FtpUrl + filename);
    request.Method = WebRequestMethods.Ftp.UploadFile;

    var secureString = new SecureString();
    foreach (var b in Encoding.Default.GetBytes(FtpPassword))
      secureString.AppendChar((char) b);
    request.Credentials = new NetworkCredential(FtpUsername, secureString);
    request.EnableSsl = true;
这是SFTP还是FTPS?由于启用SSL,我假设FTPS如文章所示

如果不是SFTP,我可以改为SFTP吗?我在通过防火墙发送时遇到问题


谢谢

SFTP is使用SSH传输文件。如果在远程计算机上运行ssh,则可以将其更改为此。不过,我不确定C#是否支持它。根据这一点:答案是否定的

FTPS正在将SSL添加到FTP。有点像HTTPS是HTTP之上的SSL

你的代码肯定在使用FTPS


您的防火墙问题可能在这里得到解释:

我就是这么想的,tyvm:)C#没有内置的对SFTP的支持,但是有几个第三方库实现了它,有些是免费的。