WCF http服务被windows 10防火墙阻止

本文关键字:防火墙 windows http 服务 WCF | 更新日期: 2023-09-27 18:09:28

我有3个自托管的WCF windows服务通过http端口80使用基本的http绑定相互通信。在同一台机器上,我有一个网站(也在默认端口80上运行)托管在IIS中,它也管理并与其中一个服务通信。在这台windows 10主机上,一切都工作得很好,即网站可以与服务通信,服务也可以相互通信。

当我试图从网络上的另一台PC访问该网站时,我在浏览器中收到一条消息,说"无法找到服务器DNS地址"。我甚至不能访问WCF服务元数据url。

这看起来像是主机上的防火墙问题,所以我为TCP端口80添加了入站和出站规则,并确保规则"万维网服务(HTTP流量)"answers"万维网服务(HTTPS流量)"是启用的。这些更改都不起作用,所以我删除了我添加的TCP规则。

最后我完全关闭了防火墙,我可以从另一台电脑访问网站。然而,当我重新启用防火墙时,网站继续工作,突然间我的WCF元数据也可以访问!我不明白为什么会这样。我已经成功地重现了这个问题好几次了。

谁能提供一个解释或建议任何其他防火墙规则尝试?

我的最终目标是将服务和网站打包到一个安装程序中,这样我就不希望我的最终用户在防火墙上瞎折腾了。他们甚至可能无法将其关闭并再次打开。

多谢

WCF http服务被windows 10防火墙阻止

http的80端口出站规则如何?

终于想通了。我用来访问主机的url使用了主机的名称。为了使机器响应名称查找,需要为公共配置文件启用名为"网络发现(NB-Name-In)"的防火墙规则。该规则允许流量通过UDP端口137。一旦名称查找被缓存,url将被正确路由。这就解释了为什么我禁用了防火墙,然后又启用了它。