1

我正在尝试从我的 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,其身份设置为在服务器上具有管理员权限的用户帐户。

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

4

2 回答 2

1

我知道了!

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

Process.Start(exeFullPath, args);

显然 ProcessStartInfo 道具的组合很重要。

于 2012-08-08T15:11:46.587 回答
0

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

试图从 nCrunch 运行的集成测试中以域用户身份启动进程。原来我的问题是一个很长的参数字符串。

(相同的参数字符串在没有用户/密码的情况下工作)

环境是 Windows 8, 64 位。

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

于 2015-03-19T17:29:34.547 回答