通过打开数据库连接测试网络连接

时间:2011-08-03 15:16:43

标签: c# sql-server networking database-connection

我有一个小的.net 2.0系统托盘应用程序(C#),它会定期检查网络连接。它通过尝试打开与另一台计算机上的SQL-Server实例的连接(并从表中选择一行)来实现此目的。应用程序在找到连接时将另一个进程创建的文档保存到数据库中。它将用于具有潜在危险的无线网络的环境中。

在测试中,我们的QA团队在数据库服务器上使用ipconfig /Release(托管Sql-Server 2005数据库)。我们发现该应用程序继续声称它是网络连接的,因为它一直保持成功打开与SQL Server的连接。我发现使用ipconfig /release在我自己的测试中,系统托盘应用程序的行为不稳定。

根据我们目前不在线的网络人员的建议,我改变了自己的内部测试(托管在VM上的应用程序,连接到我工作站上的数据库),而是关闭了VM网络连接。这会产生预期的行为(系统托盘应用程序找不到网络连接)。质量保证人员对我的建议他们做同样的事情有点怀疑,我需要让他们放心。

  1. 有人向我建议SQL Server使用命名管道接受传入连接。如果启用了命名管道和TCP / IP,这是否会使ipconfig /release测试无效?

  2. 我对网络知之甚少。根据我所读到的,命名管道听起来像设计用于同一服务器上的应用程序之间。但是它可以用于内部网通信吗?

  3. 这里还有别的东西我不知道吗?关于ipconfig /release的工作方式

1 个答案:

答案 0 :(得分:0)

对于您的应用程序,我只会使用TCP / IP通信协议。虽然SQL Server支持其他通信协议,如命名管道,但我会在您的服务器上禁用它们,因此它只接受TCP / IP连接。这是最小的开销,无论连接速度如何,都应该表现最佳。

命名管道是一种与TCP / IP不同的协议,因此释放IP地址可能不会以任何方式影响命名管道通信(听起来像是这样)。

在SQL Server计算机上,将TCP / IP作为1号协议并禁用命名管道。 QA重新进行测试。我已经包含了一个配置屏幕截图供参考。

Sql Server Config