繁体   English   中英

Process.Start() 从 C# 编写的服务调用时什么也不做

[英]Process.Start() does nothing when called from a C# written service

我创建了一个运行良好的服务,除了这部分没有做我想要的

shutdownProcess.StartInfo.RedirectStandardError = true;
shutdownProcess.StartInfo.WorkingDirectory = @"C:\Program Files (x86)\Siemens\Automation\WinCC RT Advanced";
shutdownProcess.StartInfo.FileName = @"C:\Program Files (x86)\Siemens\Automation\HmiRtmShutdown.exe";
shutdownProcess.Start();

string errors = shutdownProcess.StandardError.ReadToEnd();
eventLog1.WriteEntry(errors, EventLogEntryType.Error, eventId++);

问题是进程没有执行; 如您所见,我尝试在日志中记录错误,但是日志记录了一个空字符串,因此似乎没有错误;

当我从 cmd.exe 调用该应用程序时,它运行良好; 我还尝试将 process.start() 与 cmd.exe 一起使用,将路径作为参数传递,但没有奏效; 我将该服务安装为 LocalSystem 以赋予它最大权限; 我还尝试将服务放入同一文件夹并仅调用 .exe 以排除写入路径时的错误; 没有

请帮忙!

您无法执行尝试呈现用户界面或设计为要求从以无 UI 模式在后台运行的 Windows 服务进行交互式登录的应用程序或可执行文件(其他人已经评论了从 Vista 开始的会话 0)。

尝试编写一些单元测试并从 Visual Studio 中的单元测试运行您的代码,如果一切正常,但 Windows 服务不起作用,则问题正是上述问题。

暂无
暂无

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

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