【发布时间】:2012-11-05 18:01:22
【问题描述】:
我有一个使用 VSTO 2010 开发的 Outlook 插件,我想编写一些事件日志记录。在调试时,我只需执行以下操作即可使其工作:
if (!EventLog.SourceExists(ADDIN_FRIENDLY_NAME))
{
EventLog.CreateEventSource(ADDIN_FRIENDLY_NAME, null);
}
EventLog.WriteEntry(ADDIN_FRIENDLY_NAME, message, EventLogEntryType.Warning);
问题是加载项的发布版本没有读取日志的管理员权限。我发现一些关于在安装过程中创建 EventLog 源的文章,但我使用的是 ClickOnce,但似乎没有办法做到这一点。此外,有人谈到创建一个单独的 DLL,然后在该 DLL 上调用 InstallUtil 来创建源代码。这对我也不起作用,因为这仍然需要管理员权限。
是否可以使用 Outlook 的安全级别运行加载项?我在事件日志中看到 Outlook 的消息,因此它必须有足够的权限才能这样做。
【问题讨论】:
-
您无法在没有管理员权限的情况下创建事件源。所以,你需要改变你的策略并写一些别的东西。
-
谢谢约翰,我确实认为这是一个选项,但想检查是否可以在与 Outlook 相同的安全级别运行加载项。我总是可以诉诸正常的文件记录。
-
您可以随时尝试登录到远程数据库 - 这使得汇总报告更加简单。
标签: c# security outlook vsto event-log