从WCF服务调用EXE

本文关键字:EXE 调用 服务 WCF | 更新日期: 2023-09-27 18:06:49

我正在做一个项目,我需要运行一个可执行文件,一旦它达到WCF方法的结束,我不能在代码后面这样做,因为web服务将被设置为单向。

我已经试过了:

  System.Diagnostics.Process process = new System.Diagnostics.Process();
  System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
  startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
  startInfo.FileName = "C:''Test.exe";
  startInfo.Arguments = "Arg";
  process.StartInfo = startInfo;
  process.Start();

WCF webservice不会抛出任何错误。

是否有可能从WCF调用可执行文件,或者是否有其他方法可以做到这一点

从WCF服务调用EXE

双击程序与从WCF服务启动程序的主要区别在于权限。当你双击程序时,它在你的帐户下运行(可能是管理员或超级用户),而从WCF服务启动时,它将在与WCF应用程序或它所在的应用程序池关联的服务帐户下执行(这通常是非常受限制的)。

为了测试是否存在这个问题,仅在DEV BOX上,您可以临时指定管理员作为应用程序池服务帐户,看看它是否有效。一旦你确认这是问题,恢复原来的帐户,并调整其权限,直到程序工作。

另一种测试方法是以IIS帐户交互登录并双击该程序。这将让您看到从服务调用它时可能发生的任何错误。

还有其他潜在的问题(例如,环境变量或当前工作目录在运行时与WCF服务不同),但我发现权限通常是罪魁祸首。