C# 如何检查Ssh.NET连接是否成功建立?

C# 如何检查Ssh.NET连接是否成功建立?,c#,ssh.net,C#,Ssh.net,我想了解Ssh.NET如何告诉我连接是否成功建立: SshClient client = new SshClient("127.0.0.1", 22, "root", ""); client.Connect(); // Connection ok? Then continue, else display error SshCommand x = client.RunCommand("service apache2 status"); client.Disconnect(); client.D

我想了解Ssh.NET如何告诉我连接是否成功建立:

SshClient client = new SshClient("127.0.0.1", 22, "root", "");
client.Connect();

// Connection ok? Then continue, else display error

SshCommand x = client.RunCommand("service apache2 status");
client.Disconnect();
client.Dispose();
我如何从逻辑上证明“client.RunCommand(“service apache2 status”);”的结果 例如,如果(x==“apache2正在运行”)

您可以检查属性:

if (!client.IsConnected)
{
   // Display error
}

您可以为此使用client.IsConnected

using (var client = new SshClient("127.0.0.1", 22, "root", "")) {
    client.Connect();

    if (client.IsConnected) {
        SshCommand x = client.RunCommand("cd ~");
    } else {
        Console.WriteLine("Not connected");
    }

    client.Disconnect();
}

尝试使用IsConnected属性

If cSSH.IsConnected Then
    Dim x As SshCommand = cSSH.RunCommand("service apache2 status")
    con.Text = "Success"
Else
    con.Text = "Error! Connection Failed"
End If

谢谢:-)有时你看不见森林,看不见树木。注意:我有一个问题,我一直保持连接打开,但有一段时间没有使用。
IsConnected
返回true,但调用
ListDirectory
返回错误(
System.NotSupportedException:不支持请求“ping”。
)。未使用
KeepAliveInterval
修复此问题。相反,我必须在每次使用后断开连接,以强制IsConnected返回false,从而在每次请求时创建一个新连接。希望这个评论对以后的人有所帮助…我在第一行添加了一个用法。如果代码到达using块的末尾,它将自动在using so(在本例中为var客户端)中处理var