从ASP.NET启动新进程失败

问题描述:

我想从我的WCF服务启动一个新进程。为了这个目的我用从ASP.NET启动新进程失败

var process = Process.Start(
    new ProcessStartInfo { WorkingDirectory = config.WorkingDirectory, 
          FileName = config.WorkingDirectory, 
          Arguments = string.Format("{0} {1}", mpcName, jobId), 
          CreateNoWindow = false, 
          WindowStyle = ProcessWindowStyle.Hidden }); 

的Web应用程序使用单独的AppDomain其身份被设定为具有服务器上管理员权限的用户帐户。

的Process.Start抛出一个异常,告诉

Server execution failed, at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) 

我还测试了的ProcessStartInfo设置用户名和密码。指定密码相当棘手(SecureString),然后我收到

The stub received bad data, at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) 

所以我跳过这种方式。

你知道我的问题是什么原因以及我如何修复它。

我忘了:我正在使用Windows Server 2008 R2,IIS 7

+0

您是否尝试将UseShellExecute = false设置为ProcessStartInfo(在这种情况下,fileName和args可能需要调整)? – 2012-08-08 14:59:35

我懂了!

这是很奇怪的,但所需要的唯一的变化是调用

Process.Start(exeFullPath, args); 

显然的ProcessStartInfo道具的组合是非常重要的。

+0

+1你是男人!感谢您计算出来:) – ashes999 2013-02-12 21:47:36

此Q/A帮我在我的项目之一解决这个问题,但不同的原因 -

试图从一个集成测试的域用户被nCrunch运行来启动进程。结果我的问题是一个非常长的参数字符串。

(相同的参数串没有用户/密码作品)

环境是Windows 8中,64位。

无论如何,只能以不同的方式传递参数数据。