Если ответ @ Maleki не работает для вас, проверьте и посмотрите, есть ли файл .editorconfig
в папке проекта.
Например, Угловой CLI генерирует один с новым проектом, который выглядит например
# Editor configuration, see http://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
max_line_length = off
trim_trailing_whitespace = false
Здесь требуется изменить indent_size
, так как кажется, что он переопределит что-либо в вашем рабочем пространстве .vscode
или пользовательских настройках.
Хорошо, I’ve, сделанный немного больше исследования этого теперь. При создании сервиса окон в.Net Вы создаете класс, который наследовался Системе. ServiceProcess. ServiceBase (В VB это скрыто в.Designer.vb файле). Вы тогда переопределяете функцию OnStart и OnStop, и OnPause и OnContinue, если Вы принимаете решение. Эти методы вызываются из базового класса, таким образом, я сделал немного ввода по абсолютному адресу вокруг с отражателем. OnStart вызывается методом в Системе. ServiceProcess. ServiceBase по имени ServiceQueuedMainCallback. Версия на моей машине "Система. ServiceProcess, Version=2.0.0.0" декомпилируется как это:
Private Sub ServiceQueuedMainCallback(ByVal state As Object)
Dim args As String() = DirectCast(state, String())
Try
Me.OnStart(args)
Me.WriteEventLogEntry(Res.GetString("StartSuccessful"))
Me.status.checkPoint = 0
Me.status.waitHint = 0
Me.status.currentState = 4
Catch exception As Exception
Me.WriteEventLogEntry(Res.GetString("StartFailed", New Object() { exception.ToString }), EventLogEntryType.Error)
Me.status.currentState = 1
Catch obj1 As Object
Me.WriteEventLogEntry(Res.GetString("StartFailed", New Object() { String.Empty }), EventLogEntryType.Error)
Me.status.currentState = 1
End Try
Me.startCompletedSignal.Set
End Sub
Поэтому, потому что Я. OnStart (args) называют из части Попытки блока Выгоды Попытки, я предполагаю, что что-либо, что происходит в рамках метода OnStart, эффективно обертывается тем блоком Выгоды Попытки и поэтому любыми исключениями, которые происходят, не технически не обработаны, поскольку они на самом деле обрабатываются в Выгоде Попытки ServiceQueuedMainCallback. Так CurrentDomain. UnhandledException никогда на самом деле происходит, по крайней мере, во время стандартной программы запуска. Другие 3 точки входа (OnStop, OnPause и OnContinue) все называют от базового класса похожим способом.
Так я вЂthink’, который объясняет, почему мой компонент Обработки исключений can’t ловит UnhandledException на Запуске и Остановке, но I’m, не уверенный, если это объясняет, почему таймеры, которые являются установкой в OnStart can’t, вызывают UnhandledException, когда они стреляют.
Можно подписаться на AppDomain. Событие UnhandledException. Если у Вас есть цикл сообщения, можно связать с Приложение. Событие .
ThreadException