更正命名管道的防火墙例外(SQL 服务器)

Correct Firewall Exception for Named Pipes (SQL Server)

我正在尝试调试 aspx.net 和 C# 代码。应打开到远程 SQL 服务器默认实例的 sql 连接。 如果 sql 服务器主机上的 windows 防火墙关闭,连接工作正常。 如果 windows 防火墙启动了,我会得到一个错误: 命名管道提供程序错误 40 无法打开与 Sql 服务器实例的连接

开发机器是 windows 10 和 visual studio。 带有 ms sql 服务器实例的机器是带有 windows 2012 和 sql 服务器 2012 的虚拟机。 在那台机器上,我在 windows 安全事件中收到一个错误,声称用户名或密码不正确。这个错误有点奇怪,因为用户名和密码必须正确(否则如果防火墙关闭,它将无法正常工作)

我已经检查了 sql 服务器配置管理器 TCP/IP 并启用了命名管道。 在防火墙中,我已经设置了一个例外,允许 TCP 连接到端口 1433。 在 sql 服务器配置管理器 - SQL 服务器网络配置 - TCP/IP 中列出的端口是 1433。所以我找不到我在防火墙配置中的错误。我错过了什么?

找到解决方案: 必须扩展允许端口 1433 的防火墙规则。尽管关闭私有防火墙使访问正常进行,但这并不意味着仅允许在私有配置文件中访问的防火墙规则就足够了。使端口 1433 可用于所有配置文件(私有、public、域)解决了问题。

感谢克里斯蒂安。即使在我的情况下不需要端口 445,您的评论仍然有帮助。我试过了,但没有用。所以关键是找出哪个端口是阻塞的。

这可以通过简单的 netstat 命令来完成。在连接断开时先执行 netstat,然后在连接启动时执行 netstat,这是找出哪个端口必须打开的一种非常简单的方法。