C#FtpClientライブラリを使用してファイルをアップロードします。私はclient.SslProtocols = System.Security.Authentication.SslProtocols.Tls12
を設定しているので、カスタムポート3072を設定した後に接続が確立されます。C#リモートファイアウォールへのファイルのアップロードは、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");
}
を無効にする設定をadvfirewall 2.netsh
に=サービス= FTPSVCプロトコル= TCPのディレクトリを許可する=ルール名=」FTPサービス」アクションを追加ファイアウォールここの情報:https://serverfault.com/questions/401304/active-ftp-client-blocked-by-windows-firewall-on-windows-7 - SOよりも関連性が高いと思われるので、そのサイトで質問してみてください。 – PaulF
ファイアウォールの問題だと思うのであれば、あなたの質問はスタックオーバーフローのトピックではなく、スーパーユーザーに移動してください。 - そして、あなたは私たちにいくつかのログファイルを表示しなければなりません。そしてあなたのコードの多く!または、パッシブまたはアクティブモードを使用している場合は、少なくとも教えてください。 –
@MartinPrikryl思い出してくれてありがとう。今私は私のコードを加えました。他のログはありませんが、例外メッセージはありません。 FTPコードをパッシブまたはアクティブに設定できますか? –