我有一个小的.net 2.0系统托盘应用程序(C#),它会定期检查网络连接。它通过尝试打开与另一台计算机上的SQL-Server实例的连接(并从表中选择一行)来实现此目的。应用程序在找到连接时将另一个进程创建的文档保存到数据库中。它将用于具有潜在危险的无线网络的环境中。
在测试中,我们的QA团队在数据库服务器上使用ipconfig /Release
(托管Sql-Server 2005数据库)。我们发现该应用程序继续声称它是网络连接的,因为它一直保持成功打开与SQL Server的连接。我发现使用ipconfig /release
在我自己的测试中,系统托盘应用程序的行为不稳定。
根据我们目前不在线的网络人员的建议,我改变了自己的内部测试(托管在VM上的应用程序,连接到我工作站上的数据库),而是关闭了VM网络连接。这会产生预期的行为(系统托盘应用程序找不到网络连接)。质量保证人员对我的建议他们做同样的事情有点怀疑,我需要让他们放心。
有人向我建议SQL Server使用命名管道接受传入连接。如果启用了命名管道和TCP / IP,这是否会使ipconfig /release
测试无效?
我对网络知之甚少。根据我所读到的,命名管道听起来像设计用于同一服务器上的应用程序之间。但是它可以用于内部网通信吗?
这里还有别的东西我不知道吗?关于ipconfig /release
的工作方式
答案 0 :(得分:0)
对于您的应用程序,我只会使用TCP / IP通信协议。虽然SQL Server支持其他通信协议,如命名管道,但我会在您的服务器上禁用它们,因此它只接受TCP / IP连接。这是最小的开销,无论连接速度如何,都应该表现最佳。
命名管道是一种与TCP / IP不同的协议,因此释放IP地址可能不会以任何方式影响命名管道通信(听起来像是这样)。
在SQL Server计算机上,将TCP / IP作为1号协议并禁用命名管道。 QA重新进行测试。我已经包含了一个配置屏幕截图供参考。