在单个服务器上没有向SemanticLogging服务注册事件

时间:2016-05-13 14:34:15

标签: c# enterprise-library etw semantic-logging slab

我正在尝试从企业库语义记录应用程序块中获取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。

是否有一些我缺少的设置,或者是否有人有另外解释为什么这不起作用?

提前致谢。

1 个答案:

答案 0 :(得分:0)

似乎SemanticLogging-svc服务的标识没有创建ETW会话,注册提供程序或从ETW会话读取事件所需的权限。

将SemanticLogging-svc服务实例的标识添加到Performance Log Users Windows组。

您是否尝试使用与PerfView相同或具有管理员权限的帐户运行SemanticLogging-svc服务?