这是来自类库的代码:
proc.StartInfo = new ProcessStartInfo(CmdPath, "+an -b");
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.UseShellExecute = false;
proc.Start();
proc.WaitForExit();
当从控制台测试应用程序调用时,这正如我所期望的那样完美地工作。当我使用相同的库并从 ASP .NET Web 服务调用该方法时,它只是挂起。
我在这里缺少什么东西,也许是权限? ASPNET 服务可以访问 EXE 所在的文件夹,并且我看到它在任务管理器中运行,尽管它没有执行任何操作。
如果有人能告诉我我做错了什么,我将不胜感激。谢谢。
EDIT: 抱歉,信息不足。 CmdPath 进入我们的调度软件的命令行界面。我根据他们提供的文档传递命令。我有一种方法来获取作业列表,还有另一种方法来运行作业。 ...嗯想法。客户端通常使用Active Directory登录,我认为模拟是必要的。现在要去测试了。
EDIT 2:好的,现在客户端因 AccessViolation 问题而崩溃。这显然是一个权限问题。如果软件使用集成的AD授权,并且我冒充我的AD帐户,这样就足够了吗?我正在使用 web.config 中的标签进行模拟。
我认为使用 ASPNET 身份启动可执行服务器端时您会遇到很多问题,您尝试过吗冒充具有适当权限的身份(顺便说一句,这确实有效),但再次在服务器端启动可执行文件可能不是一个好主意。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)