gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 14:23:00 26 4
gpt4 key购买 nike

我需要从 c# .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 二进制文件、我传递给它的文件等)更改为故意不正确的路径,它就会提示。

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

如果有人对这里发生的事情有任何想法,或者甚至对我如何诊断这个问题有一些提示,我们将不胜感激。

最佳答案

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

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

我以前遇到过这样的问题,最烦人的是没有错误:http://msdn.microsoft.com/en-us/library/bb756929.aspx在这里:http://technet.microsoft.com/en-us/library/xc3tc5xx(VS.80).aspx (better description)

list 教程: http://msdn.microsoft.com/en-us/library/bb756973.aspx (Very Good)

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

关于c# - Windows Server 2008 上的 System.Diagnostics.Process.Start() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4830055/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com