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.

Другие вопросы по тегам