【问题标题】:Correct Firewall Exception for Named Pipes (SQL Server)更正命名管道的防火墙异常 (SQL Server)
【发布时间】:2020-09-05 04:36:10
【问题描述】:

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

开发机器是带有visual studio的windows 10。 带有 ms sql server 实例的机器是带有 windows 2012 和 sql server 2012 的 vm。 在那台机器上,我在 Windows 安全事件中收到一个错误,声称用户名或密码不正确。这个错误有点奇怪,因为用户名和密码必须是正确的(否则防火墙down了就不行了)

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

【问题讨论】:

  • 目前还没有专家。但根据thisthis 以及其他Google/Bing-hits,我认为您需要打开445 端口。

标签: sql-server named-pipes windows-firewall


【解决方案1】:

找到解决方案: 必须扩展允许端口 1433 的防火墙规则。即使关闭私有防火墙使访问正常工作并不意味着防火墙规则只允许在私有配置文件中访问就足够了。使端口 1433 可用于所有配置文件(私有、公共、域)解决了这个问题。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 2016-06-18
    • 2012-12-26
    • 2014-07-04
    相关资源
    最近更新 更多