簡體   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