我正在使用 Renci.SshNet 通过 ssh 连接到服务器。
using (var client = new SshClient("server.com", "", ""))
{
client.Connect();
var cmd = client.CreateCommand("do soemthing");
var result = cmd.Execute();
statusWindow.Items.Add(result);
var reader = new StreamReader(cmd.ExtendedOutputStream);
using (StringReader readerIt = new StringReader(reader.ReadToEnd()))
{
string line;
while ((line = readerIt.ReadLine()) != null)
{
statusWindow.Items.Add(line);
}
}
client.Disconnect();
}
它工作正常,但是当尝试将此代码添加到后台工作人员时,我收到以下错误;
System.dll 中出现“System.Net.Sockets.SocketException”类型的异常,但未在用户代码中处理
附加信息:所引用的对象类型不支持尝试的操作
这是后台工作人员代码;
public void connectBtn_Click(object sender, EventArgs e)
{
BackgroundWorker worker = new BackgroundWorker();
worker.DoWork += new DoWorkEventHandler(worker_DoWork);
worker.ProgressChanged += new ProgressChangedEventHandler(worker_Changed);
worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
worker.RunWorkerAsync();
}
public void worker_DoWork(object sender, DoWorkEventArgs e)
{
using (var client = new SshClient("server.com", "", ""))
{
client.Connect();
var cmd = client.CreateCommand("do soemthing");
var result = cmd.Execute();
statusWindow.Items.Add(result);
var reader = new StreamReader(cmd.ExtendedOutputStream);
using (StringReader readerIt = new StringReader(reader.ReadToEnd()))
{
string line;
while ((line = readerIt.ReadLine()) != null)
{
statusWindow.Items.Add(line);
}
}
client.Disconnect();
}
}
它在 client.Connect() 上引发异常;
是否有一个简单的原因为什么会出现这种情况?
编辑:我完全不知道为什么会这样,任何帮助将不胜感激!