Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-命令行应用程序调用_C# - Fatal编程技术网

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

C#-命令行应用程序调用,c#,C#,我做了大量的C#shell命令调用、应用程序、批处理文件等。前几天,有人问我,如果我当前从网站应用程序运行的可执行文件移动到我们内部网上的另一台服务器,是否会有问题。 换句话说,web站点应用程序和我正在运行的Process.Start(…)的可执行文件当前位于同一个框中,它们都在那里。现在,我们希望在两个不同的服务器上将两者分开 我做了一些徒劳的尝试,从服务器a(网站所在地)执行一个应用程序(位于服务器B上)。 有没有一种方式,我还没有运行交叉做这件事 谢谢是一种编码最少的方法。使用Syste

我做了大量的C#shell命令调用、应用程序、批处理文件等。前几天,有人问我,如果我当前从网站应用程序运行的可执行文件移动到我们内部网上的另一台服务器,是否会有问题。 换句话说,web站点应用程序和我正在运行的Process.Start(…)的可执行文件当前位于同一个框中,它们都在那里。现在,我们希望在两个不同的服务器上将两者分开

我做了一些徒劳的尝试,从服务器a(网站所在地)执行一个应用程序(位于服务器B上)。 有没有一种方式,我还没有运行交叉做这件事

谢谢

是一种编码最少的方法。使用
System.Diagnostic.Process
,可以调用以下命令:

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

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

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


很难理解您当前的设置是什么,以及为什么您甚至想将应用程序从服务器A切换到服务器B,因此更多的信息将为您提供更好的答案。

Austin的PSExec方法可能是在远程机器上执行EXE的最简单方法,但是你可能想考虑一个潜在的更健壮的解决方案:


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

为什么尝试无效?你尝试了什么?它是如何失败的?使用套接字。与远程机器上的另一进程通信的标准方式是使用WCF或任何其他ipc机制