我在互联网上阅读了很多类似主题的文章和答案,但没有找到问题的原因。
我有一个 .NET 4 Windows 服务连接到同一台机器上的 SQL Server Express。只有一次在生产中碰巧看到以下错误:
“与服务器成功建立连接,但在登录过程中发生错误。(提供者:命名管道提供者,错误:0 - 管道的另一端没有进程。)”。
如果我们使用命名管道协议,则出现此错误的原因很明显,因为我们尚未在服务器上启用它们。但是我的问题是为什么可以在这里使用命名管道协议?在连接字符串中,我们使用了“ Data Source=.\SQLEXPRESS ”。考虑到 msdn 和互联网上的信息,我的理解是当“。” 始终使用“共享内存协议”。那么必须发生什么才能让 ADO.NET SqlClient 决定使用命名管道协议呢?
大多数时候一切都很好,但我需要知道这个过程,以便我们可以在需要时防止这种类型的任何进一步错误。
在此先感谢,托多