我正在尝试从企业库语义记录应用程序块中获取SemanticLogging-svc.exe以侦听我的自定义事件源的事件并将其转储到控制台。
这适用于我的localhost和开发服务器,但我没有为生产服务器获得任何输出。所以我正在寻找可能的原因。
控制台输出只是:
Event Trace Session prefix: Microsoft-SemanticLogging-Etw Sink name: ConsoleEventSink Event sources: Name: b3b81ce4-1cb6-512c-f02f-46aefff0344d INNOMATE-HR-Security, Level: LogAlways, MatchAnyKeyword: None Service started.
My SemanticLogging-svc.xml如下所示:
<select name="country">
<option value="1">US</option>
<option value="2">UK</option>
</select>
Windows事件日志中没有事件。
我也尝试过使用rollingFlatFileSink。这会导致生产服务器上出现空文件,但可以在其他系统上运行。
寻找PerfMon&gt;数据收集器组&gt;事件跟踪会话,我看到Microsoft-SemanticLogging-Etw-ConsoleEventSink正在运行。
使用PerfView,我的事件被正确收集。
有问题的服务器较旧,运行的是Windows Server 2008 R2。
是否有一些我缺少的设置,或者是否有人有另外解释为什么这不起作用?
提前致谢。
答案 0 :(得分:0)
似乎SemanticLogging-svc服务的标识没有创建ETW会话,注册提供程序或从ETW会话读取事件所需的权限。
将SemanticLogging-svc服务实例的标识添加到Performance Log Users
Windows组。
您是否尝试使用与PerfView
相同或具有管理员权限的帐户运行SemanticLogging-svc服务?