【发布时间】:2015-11-04 23:02:39
【问题描述】:
尝试使用 Tamir.SharpSsh.SshExec 执行运行时间较长(~30 秒)的 sh 脚本。 (脚本在目标机器上运行良好。)大约 12 秒后,RunCommand 调用返回代码 -1。它看起来像一个超时,但我不知道如何配置它。
这是我使用的代码:
var ssh = new SshExec("mylinux", "myuser", "mypassword");
ssh.Connect(22);
string stdOut = "", stdErr = "";
int processExitCode = ssh.RunCommand("./longrunning.sh", ref stdOut, ref stdErr);
【问题讨论】:
-
为什么不把代码包装在
try{}catch{}周围,你考虑过吗..? -
@MethodMan 谢谢。它不会抛出异常,而是返回 -1,并且 shell 脚本继续在远程机器上运行......所以它只是 SharpSsh API 的超时......
-
@MartinPrikryl 是的,这是一个很大的遗留项目,我只需要做这个增加超时的“小修复”......但也许最后我无法避免切换 ssh.net.. .
-
您是否尝试调试过
RunCommand? (SharpSSH 是开源的) -
@MartinPrikryl 是的。最后我做到了,并意识到它只是越野车。我会总结一下并在此处添加答案...
标签: c# .net ssh timeout sharpssh