我正在尝试从我的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
答案 0 :(得分:1)
我明白了!
这很奇怪,但唯一需要改变的是调用
Process.Start(exeFullPath, args);
显然,ProcessStartInfo道具的组合非常重要。
答案 1 :(得分:0)
这个q / a帮助我在我的一个项目中解决了这个问题,但原因不同 -
尝试从nCrunch运行的集成测试中作为域用户启动进程。原来我的问题是一个非常长的参数字符串。
(相同的参数字符串无需用户/密码)
环境是Windows 8,64位。
无论如何,只需要以不同的方式传递arg数据。