【发布时间】:2017-06-22 15:38:14
【问题描述】:
我使用 C# FtpClient 库来上传文件。我设置自定义端口3072后建立连接,因为我设置了client.SslProtocols = System.Security.Authentication.SslProtocols.Tls12;
但是当我要通过的时候
client.GetFilePermissions("/Test.txt");
client.UploadFile(@"C:\Users\Desktop\Test.txt", "/Test.txt");
它总是会显示异常
无法从传输连接中读取数据:尝试失败 以访问权限禁止的方式访问套接字。
如果我关闭 Windows 防火墙,文件可以成功上传。
我想知道我应该在 Windows 防火墙上设置什么策略来允许我触摸远程文件并上传它。
当前我的防火墙设置:
(入站)
本地端口 3072,80,20,21,1023
远程端口 3072,80,20,21,1023(出站)
本地端口 3072,80,20,21,1023
远程端口 3072,80,20,21,1023
我的完整代码
FtpClient client = new FtpClient();
client.Host = "xx.xx.xx.xx";
client.Credentials = new NetworkCredential(UserName, Password);
client.SslProtocols = System.Security.Authentication.SslProtocols.Tls12;
client.Connect();
if (client.IsConnected)
{
Console.WriteLine("Connected");
client.DataConnectionEncryption = true;
var resutl = client.GetFilePermissions("/Test.txt");
client.UploadFile(@"C:\Users\Desktop\Test.txt", "/Test.txt");
}
else
{
Console.WriteLine("No Connetion");
}
【问题讨论】:
-
这里可能有一些相关信息:serverfault.com/questions/401304/… - 也可以尝试在该网站上提问,因为它看起来比 SO 更相关。
-
如果您认为这只是防火墙问题,您的问题与 Stack Overflow 无关,请将其移至超级用户。 - 你必须向我们展示一些日志文件。还有更多你的代码!或者至少告诉我们您使用的是被动模式还是主动模式。
-
@MartinPrikryl 感谢您的提醒。现在我加上我的代码。除了异常消息,我没有任何其他日志。我可以将我的 FTP 代码设置为被动还是主动?
-
我设置自定义端口3072后建立连接,因为我设置了client.SslProtocols = System.Security.Authentication.SslProtocols.Tls12; - 那句话没有意义对我来说 -
SslProtocols.Tls12与端口 3072 的关系是什么? -
我设置了 3072 因为我看到了这个问题的答案stackoverflow.com/questions/28286086/…
标签: c# ftp upload windows-firewall