我有一个 winform 应用程序,它需要知道 SQL 服务器何时可用,以便允许合并同步功能。我已经尝试过下面的变体,这些变体是一次性的,但我想提出一些更有活力的东西。
下面的函数(谢谢Alex_L)正在检查 SQL 运行的 1433 端口并且运行良好。我想要完成的是一种实时监控它的方法。我必须创建 Windows 服务吗?任何其他网络事件(例如网络连接更改)呢?
这个有时连接的应用程序的使用很简单。如果它们在我们的网络上,则合并复制部分可用。如果他们不在我们的网络上,那么就不是。SQL Server 永远不应该在我们的网络中可用,并且它应该在开启时始终可用。
话虽如此,我愿意接受涉及检测我们当前网络而不是 SQL 实例的解决方案。
private static bool IsSqlAvailable()
{
TcpClient tcpc = new TcpClient();
try
{
tcpc.Connect("10.250.50.30", 1433);
return true;
}
catch
{
return false;
}
}