2017-01-02 7 views
0

Ich habe kürzlich mit der SSH.NET-Bibliothek herumgespielt, und ich habe den entsorgten Objektfehler gesucht/geklärt, als ich versucht habe, einen zweiten Befehl auszuführen. Hier ist mein Code:SSH.NET "Ich kann nicht auf ein entsorgtes Objekt zugreifen"

private void statusBtn_Click(object sender, System.EventArgs e) 
{ 
    Commands("status"); 
} 

private void startBtn_Click(object sender, System.EventArgs e) 
{ 
    Commands("start"); 
} 

private void Commands(string cmd) 
{ 
    using (sdtd_client) 
    { 
     sdtd_client.Connect(); 
     switch (cmd) 
     { 
      case "status": 
       var status = sdtd_client.CreateCommand("7dtd.sh status Nom"); 
       string result = status.Execute(); 
       outputBox.AppendText(result); 
      break; 
      case "start": 
       var start = sdtd_client.CreateCommand("uptime"); 
       string result_start = start.Execute(); 
       outputBox.AppendText(result_start); 
      break; 
      default: 
       outputBox.AppendText("Unrecognized Command."); 
      break; 
     } 
     sdtd_client.Disconnect(); 
    } 
} 

Ich realisiere "sdtd_client.Disconnect();" stellt die Verbindung zur Verfügung, aber auch ohne sie zu benutzen, ist sie noch disponibel.

Wie kann ich jedes Mal, wenn ich verschiedene Befehle ausfühle, sicher verbinden, ausführen und trennen?

Auch wenn ich die Verbindung beim Start der Anwendung geöffnet habe und beim Entladen nur getrennt wurde, wird bei jedem ausgeführten Befehl das Verbindungsobjekt entfernt.

Gibt es etwas offensichtlich, das ich vermisse?

Antwort

2

Sie haben die Deklaration/Initialisierung von sdtd_client nicht in Ihrem Code veröffentlicht, aber der using (sdtd_client) Block wird das Objekt jedes Mal entsorgen, wenn es den Block verlässt. Ich vermute, dass du das nicht wirklich willst.

+0

Tut mir leid, ich nahm an, dass die Client-Deklaration bekannt war -> SshClient sdtd_client = neuer SshClient ("host", "user", "pass") – Faded

+0

Okay, ich habe es einfach aus dem Block genommen und es funktioniert .. Danke um das Offensichtliche aufzuzeigen <3 – Faded

Verwandte Themen