1

我正在使用 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() 上引发异常;

是否有一个简单的原因为什么会出现这种情况?

编辑:我完全不知道为什么会这样,任何帮助将不胜感激!

4

0 回答 0