我正在尝试使用 Visual Studio (VS) 2015 社区将一些软件发布到 FTP 站点,输出窗口显示错误
尝试枚举文件夹“”的内容时发生错误。发生了未知的 WinINet 错误(代码 12113)。
经过谷歌搜索后,结果显示该问题是由防火墙引起的。
由于在我的环境中相当安全,我禁用了 W10 防火墙,然后重试,并且它会按预期发布。
问题是,我不明白如何将其设为防火墙的例外。我看不到 FTP 正在使用哪个端口,也无法通过程序添加它,因为我必须添加整个 VS2015,这似乎很危险。
我没有手动或故意更改防火墙中的任何设置。
如何永久允许 VS2015 的 FTP 访问?
编辑
在每个配置文件(域、私有和公共)中,都设置为允许传出连接。默认情况下,所有传入连接均被阻止。
如果我仅将域设置为允许传入/传出(其他 2 个配置文件保持默认),则不会有任何变化。如果我将公共设置为允许传入/传出(其他 2 个配置文件保持默认),则不会有任何变化。但是...如果我将私人设置为允许传入/传出(其他 2 个配置文件保持默认),则它会起作用。
我当然不想让私人资料就这样‘公开’。
答案1
所以我会厚颜无耻地偷窃这个答案:启用 FTP 被动模式。否则 FTP 将无法在 NAT 路由器或专用防火墙后面工作。
修改防火墙设置不是一个合适的解决方案,因为它不可移植。被动模式才是。
答案2
您需要允许端口 21 出站访问才能上传到 ftp 站点。
从 Windows 防火墙控制台中,
select outbound rules -> next
new rule -> next
selec port rule -> next
Select rule applies to TCP and specify the remote port 21 -> next
Select Allow the connection -> next
Select the appropriate profile for your current network (domain, private, public) -> next
Give a the rule a name
编辑:
根据这个关联您可以通过在提升的命令提示符中运行以下命令来设置 FTP 打开:
netsh advfirewall 防火墙添加规则名称 =“FTP 服务”操作 = 允许服务 = ftpsvc 协议 = TCP dir = in
netsh advfirewall 设置全局 StatefulFTP 禁用