进程外语义记录服务如何接收事件?

时间:2014-05-14 13:04:58

标签: tracing etw semantic-logging

我问的原因是我想使用out-of-proc模式,但我不能在每个用户的工作站上安装服务,只能在中央服务器上安装。事件源和侦听器服务之间的通信是ETW的事情,还是我可以使用某种RPC?

2 个答案:

答案 0 :(得分:0)

是的,进程外模式使用ETW。所有ETW事件都是系统范围的,因此服务只需要收听ETW事件。

ETW仅在本地运行,不提供您可以使用的远程解决方案。您可以选择在每个工作站上安装服务,收听ETW事件(herehere)并使用您自己构建的RPC解决方案将它们转发到您的服务器。我想到了使用MSMQ。或者让您的应用程序直接将事件转发到您的服务器,这样您就不需要该服务。无论哪种方式,您都必须自己构建它。

答案 1 :(得分:0)

添加到Lars'回答,你也可以登录到SQL。你可以使用一个SQL接收器,但就像其他所有东西一样,为了获得最自定义的合适,你可以自己构建(或从另一个类继承,为你提供一个很好的起点)。但要小心。并非所有接收器都是相同的。他们都有自己的优点和缺点。例如,使用SQL和Azure接收器,您必须担心高延迟。 XML格式化程序不会写入根开始和结束节点,因此它不是格式良好的xml。无论读取该文件都必须提供它们。祝你好运!