企业库不记录

时间:2011-02-16 10:13:16

标签: logging enterprise-library

我正在使用Ent Lib 5登录事件日志。当我在Windows 7计算机上运行应用程序时,一切正常。但是当我在WindowsServer 2008上部署它时,它就会停止记录。它不会向事件日志写任何内容。在两台机器上安装了Ent Lib 5.

那你觉得怎么样?可能是什么问题?

2 个答案:

答案 0 :(得分:7)

登录Windows事件日志时,这是一种常见情况。这可能是因为事件源未在Windows Server 2008上注册。当您在开发机器上运行它时,您(像大多数开发人员)可能具有管理员权限,.NET框架会在第一次自动创建事件源你用它们。任何没有管理员权限的应用程序都无法创建事件源,因此记录失败。应用程序继续运行,因为Logging块的理念是不分散注意力,但不会记录任何内容。

部署应用程序时,应包含安装程序类以创建事件源。对于开发,快速解决方案是使用Windows PowerShell。运行提升的PowerShell进程,并使用以下命令:

[System.Diagnostics.EventLog]::CreateEventSource(sourceName, logName)

为给定日志创建事件源。

或者,通过EntLib程序集运行InstallUtil。这是一个随EntLib一起提供的InstallServices.bat,它将为您完成。

在此Codeplex discussion中查看更多内容。

答案 1 :(得分:0)

您还可以使用regedit手动添加事件源。

请参阅此MSDN article