应用程序停止从远程计算机接收数据

时间:2020-03-31 14:51:55

标签: vb.net ssh remote-server

我正在VB.NET中开发一个应用程序,该应用程序连接到远程Linux服务器以执行任务;我的应用程序发送服务器程序的输入数据,在服务器中开始执行,并在命令执行完成后从服务器检索输出信息。我使用Renci SSH.NET交换文件(SFTP)和监视远程服务器(SSH)。关键任务之一是检测远程计算机何时完成命令执行,并且视输入而定,这可能需要5分钟到几个小时。

这是我的问题:在短时间内(5分钟或更短时间内),应用程序运行平稳,没有任何问题。但是,当执行远程命令的时间超过10分钟时,我的应用程序未检测到来自服务器的任何响应,而只是挂起,因为它从未收到来自服务器的远程任务完成的指示。我使用Renci.SshNet.Common.Stream.DataAvailable属性通过测试调用Stream.Read()时是否存在外壳提示字符串来检测命令何时完成。

现在,我知道问题出在应用程序上,因为当我“手动”执行远程代码(使用终端应用程序登录服务器并执行命令)时,它就完成了而没有问题。我怀疑这与Renci ShellStream对象轮询远程计算机以获取数据的方式有关。关于可能发生的事情有什么想法吗?预先感谢您的回答。

0 个答案:

没有答案