Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检查服务器是否处于活动状态?_C#_.net_Winforms_Active Directory - Fatal编程技术网

C# 如何检查服务器是否处于活动状态?

C# 如何检查服务器是否处于活动状态?,c#,.net,winforms,active-directory,C#,.net,Winforms,Active Directory,我想在不使用Ping()方法的情况下检查服务器是否处于活动状态 有什么解决办法吗 在目前的情况下,我可以使用下面的方法 public static bool PingToServer(string ipServer) { bool isServerLife = false; try { Ping ping = new Ping(); PingReply pingReply = ping.Sen

我想在不使用Ping()方法的情况下检查服务器是否处于活动状态

有什么解决办法吗

在目前的情况下,我可以使用下面的方法

public static bool PingToServer(string ipServer)
    {
        bool isServerLife = false;
        try
        {
            Ping ping = new Ping();
            PingReply pingReply = ping.Send(ipServer, 5000);

            if (pingReply.Status == IPStatus.Success)
            {
                isServerLife = true;
            }
        }
        catch (Exception e)
        {
            Console.Write("PingToServer: Cannot ping to server, " + e.Message);
        }
        return isServerLife;
    }

如果是问题中标记的Active Directory服务器。您可以检查端口
389
3268

public static bool IsADSAlive(String hostName) 
{
    try {
        using (TcpClient tcpClient = new TcpClient()) 
        {
           tcpClient.Connect(hostName, 3268);
           return true; 
        } 
    }  catch (SocketException) { 

      return false ; 
    }
}

因此,您可以ping一台机器,但它仍然没有响应?请勾选所选答案。仅因为您可以ping,并不意味着任何应用程序都在该机器上运行。您想要实现什么?它们(389和3268)的用途是什么?如上所述,如果您的问题中标记了Active Directory服务器,您应该选中389或3268。如果您有web服务器,您可以检查80。如果您有ftp服务器,您可以检查21,…我们应该只检查其中一个或两个?其中一个就足够了。如果管理员更改为其他端口,我们应该如何检测它们?