从同一LAN中另一台服务器上的.NET 4客户端应用程序连接到SQL Server 2008 R2时,可以设置三种不同的网络协议:
- TCP协议
- 命名管道
- 不要在连接字符串中设置任何内容并使用默认值
什么是最佳做法?选择什么?
附加信息:服务器和客户端上都启用了TCP和命名管道。该应用程序正在使用数据库镜像。客户端和服务器通过快速LAN进行通信。
我们正在对此进行调查,因为我们有罕见且虚假的连接和超时问题。(但是无论如何,我都想知道最佳实践)。
在MSDN上有关于此主题的文章,但它非常笼统且含糊。它不建议或推荐任何有用的东西。
我没有足够的信心将其发布为答案。但是,如此巨大的问题没有解决是很奇怪的。必须非常稀有或难以复制。@ccook
—
usr
它很少见,很难为我们复制。幸运的是,当我们创建该应用程序时,它每分钟都会同时发送垃圾邮件,它可以不时地重现它。仍然是非常不可预测的。我们现在正在测试更改-等待一段时间再将其修复。经过研究之后,我绝对倾向于使用tcp:默认情况下,除非应用程序和服务器位于同一台计算机上。
—
ccook
@ccook我有新想法。众所周知,Windows文件共享不可靠。许多人看到了虚假错误和连接失败。它很少见,但很难/不可能诊断。现在,使用命名管道时,您可以将整个技术应用到SQL Server部署中。从一般的角度来看,这似乎是不明智的。
—
usr
同意 到目前为止,tcp:似乎正在解决该问题。我们正在稍等片刻以确认它。
—
ccook
tcp:
几年后,我还发现在其他公司的环境中,配置已作为大多数连接字符串的一部分。我认为他们发现了类似的问题。