C# 将XML数据放入Windows事件日志

C# 将XML数据放入Windows事件日志,c#,.net,xml,event-viewer,C#,.net,Xml,Event Viewer,如何将XML数据写入Windows事件日志 我注意到有一种方法可以将XML插入windows事件日志中(而不仅仅是将其填充到描述中)。这样做的效果是,在Windows Vista的常规视图中,您只会看到您的描述消息。您可以在详细信息视图中查看XML数据 如果选择友好单选按钮,它将显示在事件数据节点下。如果选择XML视图,则可以看到XML 我认为EventLog.WriteEntry()方法中的rawData字节数组允许我这样做。我尝试将XMLWriter的输出填充到其中。这将数据放入事件日志,但

如何将XML数据写入Windows事件日志

我注意到有一种方法可以将XML插入windows事件日志中(而不仅仅是将其填充到描述中)。这样做的效果是,在Windows Vista的
常规
视图中,您只会看到您的描述消息。您可以在
详细信息
视图中查看XML数据

如果选择
友好
单选按钮,它将显示在
事件数据
节点下。如果选择XML视图,则可以看到XML


我认为
EventLog.WriteEntry()
方法中的rawData字节数组允许我这样做。我尝试将XMLWriter的输出填充到其中。这将数据放入事件日志,但它被视为二进制文件而不是XML。

除非我弄错了,否则为了将XML写入Crimson/Vista事件日志,您将创建并注册一个清单,该清单将为您提供适当的通道和事件。然后,您必须使用

然后,如果要从C#登录,则需要创建一个托管提供程序来包装事件日志API。这有点困难,因为您必须使用PInvoke才能获得API

有关于如何完成整个过程的博客帖子。

您有一个名为EventProvider的示例。
它是一个使用新事件日志API(又名crimson)的C#提供者(需要Vista和最新版本才能工作)。

此示例显示如何添加自定义数据(金额和其他内容)。

该链接现在返回404