如何从IIS托管的WCF服务启动可执行文件?

Guy*_*Guy 5 iis wcf

我们有一个WCF服务,我们最近从自托管切换到IIS托管.它需要使用Process.Start()启动可执行文件.这在自托管时工作正常,但在IIS中托管时,我们收到错误:

System.ComponentModel.Win32Exception:系统找不到指定的文件

我们在bin目录和应用程序根目录中都有exe(在.svc文件旁边.)但是,它似乎无法找到exe.

任何帮助,将不胜感激.谢谢!

编辑:我忘了提到我们正在使用以下代码启动:Process.Start("LeakingWrapper.exe");

更进一步的信息:不幸的是,我们没有将exe切换到dll的选项,因为它正在包装泄漏内存的第三方库.因此,我们必须将其置于自己的流程中,以确保我们长期运行的WCF服务不会泄漏!

mar*_*c_s 3

您是否已将aspNetCompatibilityEnabled设置设置为 true?在这种情况下,您将有一个HttpContext,它可以尝试使用来调用类似以下内容:

string exeFileName = HttpContext.Current.Server.MapPath("~/LeakingWrapper.exe")
Run Code Online (Sandbox Code Playgroud)

或者:如果指定 EXE 的完整路径会怎样,例如

Process.Start("C:\yourServiceDir\bin\LeakingWrapper.exe") 
Run Code Online (Sandbox Code Playgroud)

这些帮助有用??

马克