企业库不记录

rov*_*sen 3 logging enterprise-library

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

所以你怎么看?可能是什么问题?

Gri*_*nik 7

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

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

[System.Diagnostics.EventLog]::CreateEventSource(sourceName, logName)
Run Code Online (Sandbox Code Playgroud)

为给定的日志创建事件源.

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

请参阅此Codeplex讨论中的更多内容.