从ASP.NET启动新进程失败

时间:2012-08-08 14:29:20

标签: asp.net wcf process

我正在尝试从我的WCF服务启动一个新进程。为此,我使用

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

WebApp使用单独的AppDomain,其Identity设置为在服务器上具有管理员权限的用户帐户。

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

2 个答案:

答案 0 :(得分:1)

我明白了!

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

Process.Start(exeFullPath, args);

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

答案 1 :(得分:0)

这个q / a帮助我在我的一个项目中解决了这个问题,但原因不同 -

尝试从nCrunch运行的集成测试中作为域用户启动进程。原来我的问题是一个非常长的参数字符串。

(相同的参数字符串无需用户/密码)

环境是Windows 8,64位。

无论如何,只需要以不同的方式传递arg数据。