Addhandler [процесс] .Exited делает остановку службы Windows - PullRequest
0 голосов
/ 02 мая 2019

Недавно я создал службу Windows, которая может помочь отследить время начала и окончания процесса, но я обнаружил, что всякий раз, когда выполняется addhandler [process] .exited, служба Windows останавливается

Вот мои коды для обработчика

 For Each chrome_p As Process In NewChromeProccess
            chrome_p.EnableRaisingEvents = True
            AddHandler chrome_p.Exited,
                Sub()
                    Using sw As StreamWriter = New StreamWriter(AppDomain.CurrentDomain.BaseDirectory + "\MonitoringApplication.txt", True)
                        ChromeEndTime.Add(chrome_p.ExitTime)
                        sw.WriteLine($"Process: {chrome_p.ProcessName}, Exit Time: {chrome_p.ExitTime}")
                    End Using
                End Sub

        Next
The description for Event ID 0 from source Service1 cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.

If the event originated on another computer, the display information had to be saved with the event.

The following information was included with the event: 

Service cannot be started. An instance of the service is already running

1 Ответ

0 голосов
/ 02 мая 2019

После некоторого расследования я думаю, что проблема, с которой вы сталкиваетесь, связана с линией

sw.WriteLine($"Process: {chrome_p.ProcessName}, Exit Time: {chrome_p.ExitTime}")

И, в частности, chrome_p.ProcessName часть. Когда у меня была строка, как вы написали выше, я получал сообщение об ошибке: Process has exited, so the requested information is not available. Переключив это на строковую константу, я получаю строку Process: chrome_p.ProcessName, Exit Time: 5/2/2019 8:05:46 PM в текстовом файле журнала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...