Как выполнить отладочную обработку. NET и запустить скрипт powershell в качестве действия отладчика? - PullRequest
1 голос
/ 26 марта 2020

Существует ли простой способ отслеживать заданный Windows процесс для четко определенного исключения. NET (первый или второй шанс) и запускать сценарий powershell при возникновении этого исключения? Мне действительно не нужен дамп процесса (пока).

1 Ответ

1 голос
/ 26 марта 2020

. NET ошибки приложения регистрируются в журнале событий приложений. В диспетчере запланированных задач мы можем добавить задачу, которая вызывается событием исключения. NET Runtime.

На практике это немного хлопотно делать вручную, так как нам нужны дополнительные ValueQueries чтобы сделать это, я сделал задачу XML, которую можно импортировать в планировщик задач. См. this gist .

Задача должна вызвать наш скрипт PowerShell с EventId, из которого мы получаем соответствующий элемент журнала событий, проверяем сообщение на наличие трассировки стека и ищем соответствующая известная строка исключения.

param($eventRecordID, $eventChannel = "Application")

$event = Get-WinEvent -LogName $eventChannel -FilterXPath "<QueryList><Query Id='0' Path='$eventChannel'><Select Path='$eventChannel'>*[System[(EventRecordID=$eventRecordID)]]</Select></Query></QueryList>"

$stackTrace = $event.Message

if($stackTrace -match "ConfigurationErrorsException")
{
    echo "Error Thrown in Application"
    # do some stuff
}

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

...