C# 外部程序在模拟启动时崩溃,但在运行时工作
我的.Net Windows窗体应用程序正在以另一用户身份模拟运行。该程序启动另一个从互操作程序集实例化的.net exe。试图从互操作程序集实例化时,外部程序崩溃。 如果我每班次启动外部exe,右键单击RunAsOtherUser并输入与模拟相同的登录数据,则程序工作正常 也许这与我的流程启动调用有关: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
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与用户名、密码和域一起重载会引发“拒绝访问”异常。