【发布时间】:2011-02-04 11:34:49
【问题描述】:
我需要从一个 c# .net 应用程序启动一个 3rd 方 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 二进制文件、我传递给它的文件等)更改为故意不正确的路径,那么它会抱怨。
我尝试以不同的用户身份运行此进程,即我可以用来登录服务器并手动运行命令的用户。我已从服务属性菜单授予服务访问桌面的权限。
如果有人对这里发生的事情有任何想法,或者甚至对我如何进行诊断有任何提示,我将不胜感激。
【问题讨论】:
-
能否提供 RedirectStandardOutput 和 RedirectStandardError 的输出,好吗?我们可以在没有关于所发生事情的一些事实的情况下永远“招待”你。因为它是异常的,所有建议 stackoverflow.com/questions/361097/… 应该导致正常执行。
-
RedirectStandardOutput 或 RedirectStandardError 没有输出。
标签: c# asp.net windows-server-2008