0

У меня есть Microsoft.Diagnostics.Tracking.EventSource с использованием Channel = EventChannel.Admin: resulting manifest устанавливает и отлично работает на двух машинах W7, которые я пробовал, но в 2008 R2, когда я разворачиваюсь в EventViewer, я получаю MMC и я вижу, что события не «признаны» («Описание blabla не найдено ...»).EventSource, манифесты, EventViewer & WS 2008 R2

Странно, если я удалить манифест, EventViewer может открыть файл события без каких-либо исключений (хотя все еще не находит описания должным образом).

Есть ли что-то конкретное OS около EventSource файлов манифеста?

Любые указатели направлений, в которых я должен искать?

ответ

2

Ключевым вопросом здесь является то, как вы зарегистрировали манифест. Обратите внимание, что Event Viewer фактически не знает, как читать манифест. Когда вы используете wevtutil для регистрации манифеста, он в основном просто добавляет ключи реестра. Предполагается, что ключи реестра должны иметь полный путь к DLL, а DLL должна содержать скомпилированные данные манифеста. Если вы не добавили скомпилированные данные манифеста в DLL, или если вы не указали полный путь к DLL при регистрации манифеста, Event Viewer не сможет найти нужные ему данные.

Прошлые версии wevtutil не очень хорошо предупреждают вас, когда вы делаете это неправильно. Я думаю, что более новые версии (например, Windows 10) улучшаются.

+0

Проблема в том, что я уверен, что предоставил необходимые данные и т. д. Я думаю, что я мог бы начать с проверки в реестре , но оттуда ... манифест - это тот, который генерирует автоматическую союзник 'Microsoft.Diagnostics.Tracing' – Benjol

+0

Я имел в виду, какую команду вы использовали для регистрации вашего манифеста? Я предполагаю, что вы использовали wevtutil.exe. Вы скомпилировали манифест, связали результирующие ресурсы с вашей DLL и включили полный путь к этой DLL в свою командную строку wevtutil.exe? –

+0

''% windir% \ System32 \ wevtutil.exe "im"% ~ dp0Manifest.man "/rf:"%~dp0Manifest.dll"/mf: "% ~ dp0Manifest.dll" "' – Benjol

0

Ошибка пользователя, для изменения :(

Я даже написал это прямо в комментарии к ответу Дуга:

"%windir%\System32\wevtutil.exe" im "%~dp0Manifest.man" 
      /rf:"%~dp0Manifest.dll" /mf:"%~dp0Manifest.dll" 

Но не было то, что я на самом деле было в моей партии файл, где я забыл поставить полный путь перед именем файла .man.