我在WinForms应用程序中处理Application.UnhandledException事件,需要记录那里捕获的异常。我的app.config设置为记录FileLog和EventLog的异常。
问题是当作为非管理员用户运行时,由于SecurityException而无法写入EventLog - 我收到消息“找不到源,但无法搜索部分或全部事件日志”。
我理解为什么 - 用户没有创建EventLog源的权限,但问题是如何创建此源?在我看来,我可以:
1)使用我的安装程序创建EventLog源,因为它以admin身份运行。怎么做?
2)从我的应用程序中创建,以某种方式提升权限?但这会让UAC在Vista上出现提示。
在客户端计算机上创建Windows应用程序EventLog源的最佳做法是什么?
感谢
答案 0 :(得分:2)
最常见的方法是选择1。
如何操作取决于您的安装程序包,但您需要:
当您的安装程序写入事件日志时,将创建源并将为非管理员提供。
使用WiX(Windows Installer Xml),您可以引用this post直接创建事件源注册表项。