繁体   English   中英

Windows Server 2008上的System.Diagnostics.Process.Start()问题

[英]System.Diagnostics.Process.Start() problems on Windows Server 2008

我需要从ac#.net应用程序启动第3方Java应用程序。 最初,我想从asp.net网站上执行此操作,但是在遇到权限/特权问题后,我开始尝试从Windows服务执行此操作,因为它以系统用户身份运行,希望我能解决我的问题。 哦,是的,尝试在Windows 2008服务器上运行此程序时出现了我的问题。 在我的Windows 7开发环境中一切都很好。

我自然会在这些论坛和其他论坛中搜寻答案,而我发现没有任何帮助,因此请招待我。

我有要在批处理文件中运行的命令,并且正在使用以下代码启动它。

ProcessStartInfo psi = new ProcessStartInfo(filePathToBatchFile);
        psi.Arguments = "arguments for batch file..."
        psi.UseShellExecute = false;
        psi.RedirectStandardOutput = true;
        psi.RedirectStandardError = true;
        psi.RedirectStandardInput = true;
        Process p = Process.Start(psi);

我运行批处理文件主要是因为我想确保正在发生某些事情。 我确保所有变量和文件路径都是正确的,并且批处理文件确实正在运行。 我可以用它来做其他事情,例如xcopy文件,也可以自己在命令行中运行命令,并且效果很好。 没有异常被抛出,进程也没有输出。 如果我将路径(到Java二进制文件,我传递给它的文件等)更改为故意不正确的路径,则会抱怨。

我尝试以不同的用户身份运行此过程,即可以用来登录服务器并手动运行命令的用户。 我已经从服务属性菜单中授予了对桌面的服务访问权限。

如果有人对这里发生的事情有任何想法,或者甚至有一些关于如何进行诊断的提示,将不胜感激。

您必须为您的应用创建清单或关闭UAC。

发生的事情是,由于它不是经过签名的可执行文件,因此UAC阻止您的服务运行/启动其他应用程序。 这就是清单的来源。...在Windows SDK文档(Applicaiton Manifest)中查找清单。

之前我曾遇到过这样的问题,最烦人的是没有错误: http//msdn.microsoft.com/en-us/library/bb756929.aspx和此处: http : //technet.microsoft。 com / zh-CN / library / xc3tc5xx(VS.80).aspx(更好的描述)

有关清单的教程: http : //msdn.microsoft.com/zh-cn/library/bb756973.aspx(很好)

Windows应用程序权限和UAC(Vista,2008年7月7日,R2) http://msdn.microsoft.com/en-us/library/bb756996.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM