禁用命名管道

Posted

技术标签:

【中文标题】禁用命名管道【英文标题】:Disable named pipes 【发布时间】:2018-01-24 15:00:40 【问题描述】:

我有这个问题 - 客户端站(没有 SQL Server)首先尝试通过命名管道连接到 SQL Server。是否可以强制这些站首先通过 TCP/IP 协议进行连接?我有来自应用程序的日志说尚未找到网络路径(因为它正在尝试仅连接命名管道)。我的问题是:SQL 服务器能否以某种方式强制客户端站点仅通过 TCP/IP 进行连接?服务器上已安装 SQL Server 2012

registers

非常感谢

【问题讨论】:

Force the TCP/IP protocol in connection string的可能重复 客户端如何知道服务器要在连接到服务器之前执行哪些策略? 我明白了,与 server = tcp: hostname not 的解决方案不同? 几个月前我尝试 tcp: hostname 时,它​​不起作用(我根本没有得到它)​​... >>>几个月前我尝试 tcp: hostname 时,它​​不起作用SQL SERVER BROWSER 没有运行,因此您根本无法连接 【参考方案1】:

从文档Client Protocols Properties (Order Tab)可以看出

客户端协议属性(订单选项卡)

使用客户端协议属性对话框中的订单页面 查看并启用客户端协议。

单击一个协议,然后单击启用或禁用以移动协议 将所选协议添加到已禁用协议或已启用协议列表中。

按列出的顺序尝试协议,尝试使用连接 首先是***协议,然后是第二个列出的协议,依此类推。 协议向上或向下启用协议列表,通过单击向上 箭头和向下箭头按钮。连接到 Microsoft SQL Server 时 从该计算机上的客户端,共享内存协议将始终 如果启用,请先尝试。

注意 Microsoft .NET SqlClient 不使用这些设置。这 .NET SqlClient 的协议顺序首先是 TCP,然后是命名管道, 无法更改。

按照列出的顺序尝试协议,我的图片是默认顺序,我的意思是,如果没有人更改配置,命名管道是最后一个:

我认为您的问题不是命名管道,而是错误的实例名称/未运行的 SQL Server Browser。当所有的协议都试过都没有成功时,最后一个报告错误,所以如果你的错误说

“未找到服务器”(命名管道)

这意味着所有协议都已尝试,但命名管道是最后一个。

【讨论】:

下面是我的回答

以上是关于禁用命名管道的主要内容,如果未能解决你的问题,请参考以下文章

Linux进程间通信

Linux - 进程间通信 - 命名管道

windows命名管道

命名管道 232 管道正在关闭

windows命名管道

c++下使用命名管道实现进程间通信