EventSource, манифесты, EventViewer и WS 2008 R2
У меня есть Microsoft.Diagnostics.Tracking.EventSource
с помощью Channel = EventChannel.Admin
: итоговый манифест устанавливается и отлично работает на двух машинах W7, которые я пробовал, но в 2008 R2, когда я выполняю детализацию в EventViewer, я получаю ошибки оснастки MMC и вижу, что события не "распознаны" ("Описание блабла не может быть найдено...").
Странно, если я удалю манифест, EventViewer сможет открыть файл событий без исключений (хотя все равно не найдет описания должным образом).
Есть ли что-то специфичное для ОС? EventSource
файлы манифеста?
Любые указатели направлений, в которых я должен искать?
2 ответа
Ключевой вопрос здесь - как вы зарегистрировали манифест. Обратите внимание, что Event Viewer на самом деле не знает, как читать манифест. Когда вы используете wevtutil для регистрации манифеста, он в основном просто добавляет ключи реестра. Предполагается, что разделы реестра имеют полный путь к DLL, а DLL должна содержать скомпилированные данные манифеста. Если вы не добавили скомпилированные данные манифеста в библиотеку DLL или не указали полный путь к библиотеке DLL при регистрации манифеста, программа просмотра событий не сможет найти необходимые данные.
Предыдущие версии wevtutil не очень хорошо предупреждали вас, если вы делаете это неправильно. Я думаю, что новые версии (например, Windows 10) становятся лучше.
Ошибка пользователя, для разнообразия:(
Я даже написал это прямо в комментарии к ответу Дуга:
"%windir%\System32\wevtutil.exe" im "%~dp0Manifest.man"
/rf:"%~dp0Manifest.dll" /mf:"%~dp0Manifest.dll"
Но это было не то, что я имел в своем пакетном файле, где я забыл указать полный путь перед именем файла.man.