检查SQL Server是否存在的最佳方法是什么?

我正在尝试Microsoft.SqlServer.Management.Smo.Server.PingSqlServerVersion()
如果服务器存在且可用,则可以正常工作。
但是,如果没有这样的服务器,那将相当慢。

如果存在服务器,是否有足够快速的方法甚至无需定义用户凭据(仅服务器名称)就可以检查?

您建议使用什么?

最佳答案

您可以只使用TcpClient类查询服务器并检查是否打开了特定端口,可能是这样的:

using System.Net;
using System.Net.Sockets;

public bool CheckServerAvailablity(string serverIPAddress, int port)
{
  try
  {
    IPHostEntry ipHostEntry = Dns.Resolve(serverIPAddress);
    IPAddress ipAddress = ipHostEntry.AddressList[0];

    TcpClient TcpClient = new TcpClient();
    TcpClient.Connect(ipAddress , port);
    TcpClient.Close();

    return true;
  }
  catch
  {
    return false;
  }
}

关于c# - 检查SQL Server可用性的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3257084/

10-14 22:48