我使用C#FtpClient庫上傳文件。我設置自定義端口3072後建立連接,因爲我設置了client.SslProtocols = System.Security.Authentication.SslProtocols.Tls12
;C#上傳文件到遠程FTP被Windows防火牆禁止
但是,當我準備去通過
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");
}
可能有一些相關的信息在這裏:https://serverfault.com/questions/401304/active-ftp-client-blocked-by-windows-firewall-on-windows-7 - 也試着問在該網站上的問題,因爲它看起來比SO更相關。 – PaulF
如果您認爲它只是防火牆問題,那麼您的問題就是堆棧溢出問題,將其移至超級用戶。 - 你必須向我們展示一些日誌文件。還有更多你的代碼!或者至少告訴我們您是否使用被動模式或主動模式。 –
@MartinPrikryl謝謝提醒。現在我加上我的代碼。我沒有任何其他日誌,但有異常消息。我可以將我的FTP代碼設置爲被動還是主動? –