【发布时间】:2022-02-03 21:31:51
【问题描述】:
我尝试通过单击两个按钮使用 Renci 和 sshnet 库向我的 CPU 发送 ssh 命令。第一个按钮,它工作正常,但当我点击第二个时,它说
'System.ObjectDisposedException'
为客户在那些行。
client.Connect();
shCommand cmd3 = client.RunCommand("ls -la checkEth*");
有人可以帮忙吗?
public partial class Form1 : Form
{
SshClient client = new SshClient("192.168.1.5", "deneme", "deneme");
int milliseconds;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Console.WriteLine("Button 1 clicked");
using (client)
{
milliseconds = 200;
Thread.Sleep(milliseconds);
client.Connect();
SshCommand cmd = client.RunCommand("ls > checkEth.txt");
System.Diagnostics.Debug.WriteLine("chechethYapildi 1: " + cmd.Result);
Thread.Sleep(milliseconds);
SshCommand cmd2 = client.RunCommand("ls -la checkEth*");
System.Diagnostics.Debug.WriteLine("com 1:" + cmd2.Result);
textBox1.Text = (cmd2.Result);
System.Diagnostics.Debug.WriteLine("cevapgelecek");
//client.Dispose();
}
client.Dispose();
}
private void button2_Click(object sender, EventArgs e)
{
using (client)
{
client.Connect();
SshCommand cmd3 = client.RunCommand("ls -la checkEth*");
textBox1.Text = (cmd3.Result);
System.Diagnostics.Debug.WriteLine("ikinci butona basıldı");
}
}
}
【问题讨论】:
-
将输出写入文件而不检查结果的第一个命令。第二个命令将输出通过管道传输到标准输出。然后在读取结果时出错: textBox1.Text = (cmd2.Result);为什么 cmd2.Result 周围有括号? cmd2.Result 是文本字符串吗?
-
是的,cmd2.Result 是一个文本字符串。