首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在调用EventLog之前检测EventLog.SourceExists权限

在调用EventLog之前检测EventLog.SourceExists权限
EN

Stack Overflow用户
提问于 2012-05-01 08:51:51
回答 1查看 643关注 0票数 0

我想从ASP .NET应用程序登录到应用程序事件日志。我想调用EventLog.SourceExists来确定事件源是否首先存在,如果没有创建,则确定它是否存在。

如MSDN (http://msdn.microsoft.com/en-us/library/6s7642se.aspx)上所述:“要在Windows及以后版本或Windows 2003中搜索事件源,必须具有管理权限。此要求的原因是必须搜索所有事件日志,包括安全性,以确定事件源是否唯一。从Windows开始,用户没有访问安全日志的权限;因此,将引发SecurityException。”

在我的示例中,NetworkService用户将不具有管理权限,因此EventLog.SourceExists抛出一个SecurityException,如MSDN中所记录的那样。

,我的问题是:如何对EventLog.SourceExists的调用进行防御性编码?是否有什么东西我可以调用,首先检查我是否有权在调用EventLog.SourceExists之前搜索事件源?

或者是我唯一的选择,可以捕获SecurityException并在catch块内采取其他一些操作,例如日志到现有的事件源,例如信息

谢谢

凯文

EN

回答 1

Stack Overflow用户

发布于 2012-05-01 11:41:37

您一定要写到Windows应用程序事件日志吗?默认情况下存在的安全限制确实使此难以执行。每次我在一个新的VM上开发时,我都必须创建一个注册表条目,以允许NETWORK_USER帐户写入日志,并且一旦您将应用程序滚到一个活动服务器上(在那里进行大规模注册更改可能不是一个好主意),那么您就会被监听。

此外,经验告诉我,Windows事件日志并不是最友好的日志/调试环境。对于夜间运行的服务器应用程序,我倾向于将所有事件日志记录到第二天可以读取的html文件中,对于web应用程序,我使用自定义数据库并将所有事件发送到该文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10395503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档