C# - 命令行应用程序调用

时间:2011-11-18 16:20:53

标签: c#

我已经做了大量的C#shell命令调用,应用程序,批处理文件等。有一天我被问到,如果我目前从我的网站应用程序运行的可执行文件将移动到另一台服务器上是否会出现问题我们的内联网。 换句话说,我通过Process.Start(...)运行的网站应用程序和可执行文件当前位于同一个框中 - 一切都很好。现在希望在两台不同的服务器上将两者分开。

我做了一些徒劳的尝试,从服务器A(网站所在的位置)执行应用程序(位于服务器B上)。 有没有一种方法我还没有完成交叉呢?

由于

3 个答案:

答案 0 :(得分:4)

PsExec是编码最少的一种方式。使用System.Diagnostic.Process,您可以调用此命令:

psexec \\ServerB (path)\myapp.exe arg0 arg1 ...

答案 1 :(得分:0)

要通过在服务器B上运行应用程序来控制服务器A的进程,您需要在服务器B上运行的应用程序以某种方式远程控制。

例如,假设服务器A运行unix,因此您可以编写一个应用程序,该应用程序将使用ssh连接到服务器A,进行身份验证,然后控制进程以及您在shell中执行的操作。如果服务器A不允许ssh连接,你可以编写自己的应用程序,它将在服务器A上运行,监听来自服务器B中应用程序的某些连接和命令。

很难理解你当前的设置是什么,为什么你甚至想要将应用程序从服务器A切换到服务器B,所以更多的信息会让你得到更好的答案。

答案 2 :(得分:0)

Austin的PSExec方法可能是在远程计算机上执行EXE的最简单方法,但您可能需要考虑一个可能更强大的解决方案:

您可以修改命令行应用程序以作为服务运行,并通过WCF(binaryXML / TCP或XML / HTTP)调用响应工作和/或数据请求。