• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

在ASP.NET程序中使用事件日志的条件——关于注册表的访问控制表 ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

近几天折腾了一个比较奇怪的东西,放在服务器上就出现莫名其妙的故障。

由于没法直接在服务器上调试,手边又没有服务器的镜像,就想到靠事件日志来记录运行过程中产生的异常来分析。

 

但是在最初的尝试中,总是会产生安全异常——根据提示检查.NET权限设置也没发现问题出在哪里……

 

 

在参考了一些文章、又经过一些探索之后,可以我发现:

1、对事件日志进行任何操作时必须具有读取事件日志服务的注册表项目的权限。

2、无论对日志进行何种操作,必须要具有对安全日志的注册表项目进行读取的权限。

3、创建新的日志和事件/消息源时必须具有对事件日志服务的注册表项目进行值写入的权限,同时还需要在其下创建子项目的权限。

 

需要注意的是:

一般情况下运行ASP.NET程序的程序池所使用的身份是Network Service或者ASPNET,而这两个身份是没有操作事件日志服务的注册表项目的权限的,所以在ASP.NET程序中使用事件日志之前必须设置相应的注册表项目,允许ASP.NET的程序池对其访问——事件日志服务在注册表中对应的路径是HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog。

另外安全日志对应事件日志之的Security注册表项目,它的ACL并不直接继承自eventlog,是需要单独设置的。

 

在为eventlog添加了允许Network Service读写和创建子项目、为Security添加了允许Network Service进行读取的访问控制规则以后,我的ASP.NET应用程序就可以创建并写入事件日志了。

 

对于类似的问题,微软知识库中有一个建议的解决方法,是运行一个使用EventLogInstaller组件创建的独立的应用程序——不过本质上还是利用了管理员的特权来进行操作,在此就不再详细说明了。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NETMVC3中Controller与View之间的数据传递总结发布时间:2022-07-10
下一篇:
关于asp.netmvc4在IE8下导出excel失败的解决办法发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap