Как получить файл манифеста ETW, связанный с EventSource службы Service Fabric?

Когда вы создаете проект надежной службы без сохранения состояния с помощью Visual Studio, вы получаете настраиваемый источник событий, который является подклассом класса EventSource из .net framework. Поскольку EventSource совпадает с поставщиком событий ETW, с ним должен быть связан уникальный идентификатор GUID (чтобы отличать его от других поставщиков ETW). Кроме того, для правильной работы ETW требуется файл манифеста. Вероятно, EventSource скрывает всю эту информацию от разработчика. Есть ли способ просмотреть информацию о поставщике ETW (полученную из моего пользовательского источника событий в моей службе) вместе с файлом манифеста ETW?


person Raghu    schedule 31.08.2016    source источник
comment
вы видели этот вопрос?: stackoverflow.com/questions/ 18913364/   -  person LoekD    schedule 31.08.2016


Ответы (2)


Это оказалось предельно просто. Класс EventSource имеет следующий статический метод:

public static string GenerateManifest(
   Type eventSourceType,
   string assemblyPathToIncludeInManifest
)

При отладке службы Service Fabric вы можете сделать следующее:

System.Diagnostics.Debug.WriteLine(System.Diagnostics.Tracing.EventSource.GenerateManifest(typeof(ServiceEventSource), "C:\temp"))

Это должно дать вам красиво отформатированный XML-манифест.

person Raghu    schedule 01.09.2016

Вы можете просто установить следующий пакет nuGet в проект с настраиваемым источником событий, который является подклассом класса EventSource.

Microsoft.Diagnostics.Tracing.EventRegister

После сборки проекта вы получите файл манифеста и dll в каталоге bin.

person Arnab    schedule 26.07.2018