c# - 错误:无法访问已处置的对象。对象名称:'ShellStream'
问题描述
我正在使用 C# 和 ASP.NET 2.0 Web 应用程序。我正在尝试使用 Renci SSH.NET 连接到远程 unix 机器并执行 unix 命令。代码工作正常,现在突然出现错误 - 无法访问已处置的对象。我使用了下面的代码
public void function1()
{
SshClient sshclient = new SshClient(hostname, username, pwd);
sshclient.Connect();
ShellStream stream = sshclient.CreateShellStream("cms1d", 80, 24, 800, 600, 1024);
objCatcher.WriteOnlyInfo("whoami", stream);
objCatcher.WriteOnlyInfo("command 2", stream);
stream.Dispose();
sshclient.Disconnect();
sshclient.Dispose();
}
public void WriteOnlyInfo(string customCMD, ShellStream stream)
{
var writer = new StreamWriter(stream);
writer.AutoFlush = true;
WriteStream(customCMD, writer, stream);
}
private void WriteStream(string cmd, StreamWriter writer, ShellStream stream)
{
writer.WriteLine(cmd);
while (stream.Length == 0)
{
Thread.Sleep(2000);
}
Thread.Sleep(5000);
}
第一个命令正在运行,当代码执行第二个命令时,我收到了错误。我尝试删除 RENCI dll 并将其添加回来。清理并重新构建解决方案。该对象仅在函数的末尾放置。但这并没有帮助。如何解决这个问题?谢谢
解决方案
推荐阅读
- firefox - Nightwatch FireFox60 和 geckodriver MoveTo 因未知命令而失败
- html - 为什么行从 div VERTICALLY 溢出?
- javascript - 将数据从 XLSX 显示到数据表
- ns-3 - NS-3 中 TCP/IP 协议套件的轻量级实现
- azure-cognitive-search - 从不同的数据源创建单个索引
- html - 在
- python - 在 Django 中使用两个数据库(一个是只读的)
- sharepoint - 如何检索在站点中进行最后修改的用户
- git - 如何将 svn 中的提交重播到 git
- azure - MS Identity Azure 应用程序已注册但在隐式流中发送未授权客户端