gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 16:42:57 31 4
gpt4 key购买 nike

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

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

根据我们目前不在场的网络人员的建议,我更改了自己的内部测试(应用程序托管在 VM 上,连接到我工作站上的数据库)以关闭 VM 网络连接。这会产生预期的行为(系统托盘应用程序无法找到网络连接)。 QA 人员对我提出的他们也这样做的建议持怀疑态度,我需要让他们放心。

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

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

  3. 还有什么我没有注意到的事情吗? ipconfig/release 的工作原理

最佳答案

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

命名管道是不同于 TCP/IP 的协议(protocol),因此释放 IP 地址可能不会以任何方式影响命名管道通信(听起来确实如此)。

在 SQL Server 机器上,将 TCP/IP 作为第一协议(protocol)并禁用命名管道。让 QA 重新运行测试。我提供了一个配置屏幕截图以供引用。

Sql Server Config

关于c# - 通过打开数据库连接测试网络连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6928837/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com