使用My.Application.Log.WriteException写入事件日志的安全问题
问题描述:
我正在处理WinForms应用程序中的Application.UnhandledException事件,并且需要记录在那里捕获的异常。我的app.config被设置为将异常记录到FileLog和EventLog。使用My.Application.Log.WriteException写入事件日志的安全问题
问题是,作为非管理员用户运行时,EventLog因SecurityException而无法写入 - 我收到消息“未找到源,但无法搜索部分或全部事件日志。 “
我明白为什么 - 用户没有创建EventLog源的权限,但问题是如何创建此源?正如我所看到的,我可以:
1)使用我的安装程序创建EventLog源,因为它以admin身份运行。这个怎么做?
2)从我的应用程序内创建,通过某种方式提升权限?但是这会给Vista上的UAC提示。
在客户机上创建Windows应用程序事件日志源的最佳做法是什么?
感谢
答
最常见的方式做,这是你的选项1.
你怎么做就看你的安装包,但你需要:
- 确保您的安装程序运行提高权限。
- 写一个条目到事件日志源或
- 直接
当你安装程序写入事件日志,源将被创建您的事件源创建注册表项,将可对于非管理员。
使用WiX(Windows Installer Xml),您可以引用this post以直接创建事件源注册表项。
谢谢,这应该很好。已在此处找到更多信息: http://msdn.microsoft.com/en-us/library/xz73e171%28VS.80%29.aspx – 2009-08-04 23:55:14