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