2011-11-18 132 views
2

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

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

感谢

+4

为什么这些尝试是徒劳的?你尝试了什么,它是如何失败的? – David

+1

使用套接字。或通过http戳它。 –

+0

与远程机器上的另一个进程通信的标准方式是使用WCF或任何其他ipc机制 –

回答

4

PsExec是用最少的代码的一种方式。使用System.Diagnostic.Process,你可以调用这个命令:

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

通过运行在服务器B的应用服务器控制A的过程中,你需要上会得到远程控制莫名其妙服务器B上运行的应用程序。

举一个例子,假设服务器A运行unix,所以你可以编写一个应用程序,它使用ssh连接到服务器A,验证并控制进程,而不像你在shell中做的那样。如果服务器A不允许ssh连接,则可以编写自己的应用程序,该应用程序将在服务器A上运行,以侦听来自服务器B中的应用程序的某些连接和命令。

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

0

奥斯汀的PSEXEC的方法可能是在远程机器上执行的EXE最简单的方法,但你可能要考虑潜在的更加强大的解决方案:

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