Dav*_*ash 5 .net c# ftp windows-firewall .net-core
我有一个 .NET Core 控制台应用程序,它从 FTP 服务器下载文件并处理它们。我将应用程序移到新服务器上,但它停止工作。在新服务器上禁用 Windows 防火墙解决了这个问题,但显然我不想让它完全打开 - 我需要一种有针对性的方式来启用这个应用程序。默认防火墙规则似乎已经允许(入站和出站)FTP 流量,因此我不知道可以打开哪些其他端口(我想我正在使用活动 FTP,它可以使用广泛的端口范围 AFAIK)。我更愿意将该应用程序列入白名单,但它不是 .exe 文件,所以我不确定要允许哪个应用程序。
我使用 .bat 文件的快捷方式运行该应用程序。bat 文件仅包含以下行:
dotnet "C:\path\my-application.dll"
Run Code Online (Sandbox Code Playgroud)
应用程序失败的代码是:
FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(ftpServerUri);
request.UseBinary = true;
request.Credentials = new NetworkCredential(ftpUser, ftpPsw);
request.Method = WebRequestMethods.Ftp.ListDirectory;
request.Proxy = null;
request.KeepAlive = false;
request.UsePassive = false;
// hangs here forever unless Windows Firewall is turned off
FtpWebResponse response = (FtpWebResponse)await request.GetResponseAsync();
Run Code Online (Sandbox Code Playgroud)
是否可以允许应用程序通过防火墙?我是否允许使用 dotnet.exe、.bat 文件或 .dll 文件,或者是否有其他方法可以做到这一点?在此先感谢您的帮助!
您可以在 Win10 上尝试 2 件事:
导航路径:控制面板\所有控制面板项目\Windows Defender 防火墙\允许的应用程序
单击允许其他应用程序
在下面的弹出窗口中,提供 dotnet.exe 的绝对路径
导航路径:控制面板\所有控制面板项目\Windows Defender 防火墙\高级设置
编辑:
事实证明,白名单起到了作用。
| 归档时间: |
|
| 查看次数: |
782 次 |
| 最近记录: |