C# 外部程序在模拟启动时崩溃,但在运行时工作

C# 外部程序在模拟启动时崩溃,但在运行时工作,c#,.net,winforms,.net-2.0,impersonation,C#,.net,Winforms,.net 2.0,Impersonation,我的.Net Windows窗体应用程序正在以另一用户身份模拟运行。该程序启动另一个从互操作程序集实例化的.net exe。试图从互操作程序集实例化时,外部程序崩溃。 如果我每班次启动外部exe,右键单击RunAsOtherUser并输入与模拟相同的登录数据,则程序工作正常 也许这与我的流程启动调用有关: ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = Path.Combine(S

我的.Net Windows窗体应用程序正在以另一用户身份模拟运行。该程序启动另一个从互操作程序集实例化的.net exe。试图从互操作程序集实例化时,外部程序崩溃。 如果我每班次启动外部exe,右键单击RunAsOtherUser并输入与模拟相同的登录数据,则程序工作正常

也许这与我的流程启动调用有关:

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName         = Path.Combine(System.Windows.Forms.Application.StartupPath, exeFile);
startInfo.Arguments        = arguments;
Process process            = Process.Start(startInfo);
process.WaitForExit();
[编辑]

碰撞详细信息: 在vmWare和我的开发人员机器上:没有异常窗口,什么都没有,外部应用程序被执行,然后消失(我在其中放了一些消息框来检查)

在客户计算机上:异常窗口 未知错误(0xffff…e) Win32异常 系统 StartWithShellExecuteEx 在System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo-startInfo) 在System.Diagnostics.Process.Start()中
在System.Diagnostics.Process.Start(ProcessStartInfo startInfo)

中,如果您知道用户名和密码,则可以在进程的启动信息中设置这些属性。如果你有一个模拟令牌,我想你会被CreateProcessAsUser的pinvoke卡住ttp://msdn.microsoft.com/en-us/library/windows/desktop/ms682429%28v=vs.85%29.aspx


进程。使用用户名、密码和域启动重载:


PInvoke CreateProcessAsUser已经有一个SO问题和答案:

Process.Start与用户名、密码和域一起重载会引发“拒绝访问”异常。