从C#书面服务调用时Process.Start()不执行任何操作

时间:2018-08-23 09:06:28

标签: c# .net windows 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以排除写入路径时的错误;没事

请帮助!

1 个答案:

答案 0 :(得分:1)

您无法执行试图呈现用户界面或被要求从Windows Service进行交互式登录的应用程序或可执行文件,该Windows Service在无UI模式下在后台运行(从Vista开始,Session 0开始,其他人纷纷加入)。

尝试查找一些单元测试,然后从Visual Studio的单元测试中运行代码,如果一切正常,但是Windows Service无法正常运行,则问题恰恰是上述问题。