Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 使用My.Application.Log.WriteException写入事件日志时出现的安全问题_Vb.net_Logging - Fatal编程技术网

Vb.net 使用My.Application.Log.WriteException写入事件日志时出现的安全问题

Vb.net 使用My.Application.Log.WriteException写入事件日志时出现的安全问题,vb.net,logging,Vb.net,Logging,我正在处理WinForms应用程序中的Application.UnhandledException事件,需要记录在此捕获的异常。My app.config设置为记录文件日志和事件日志的异常 问题是,当以非管理员用户身份运行时,由于SecurityException,无法写入事件日志-我收到消息“未找到源,但无法搜索部分或所有事件日志。” 我理解原因-用户没有创建EventLog源的权限,但问题是应该如何创建此源?在我看来,我可以: 1) 使用我的安装程序创建事件日志源,因为它以管理员身份运行。如

我正在处理WinForms应用程序中的Application.UnhandledException事件,需要记录在此捕获的异常。My app.config设置为记录文件日志和事件日志的异常

问题是,当以非管理员用户身份运行时,由于SecurityException,无法写入事件日志-我收到消息“未找到源,但无法搜索部分或所有事件日志。”

我理解原因-用户没有创建EventLog源的权限,但问题是应该如何创建此源?在我看来,我可以:

1) 使用我的安装程序创建事件日志源,因为它以管理员身份运行。如何做到这一点

2) 通过提升权限,从我的应用程序中创建?但这会在Vista上给UAC提示

在客户端计算机上创建Windows应用程序事件日志源的最佳做法是什么


谢谢

最常用的方法是选择1

如何操作取决于安装程序包,但您需要:

  • 确保安装程序以提升的权限运行
  • 将单个条目写入该事件日志源,或
  • 直接为事件源创建注册表项
  • 当您的安装程序写入事件日志时,将创建源,并可供非管理员使用


    使用WiX(Windows Installer Xml),您可以参考直接创建事件源注册表项。

    谢谢,这应该很有用。您可以在此处找到更多信息: