【问题标题】:Write to Event log from BizTalk从 BizTalk 写入事件日志
【发布时间】:2011-10-25 14:56:02
【问题描述】:

当我尝试使用表达式形状中的 EventLog.WriteEntry("MyEsb", "Msg"); 之类的内容执行编排时,我收到异常 The source was not found, but some or all event logs could not be searched. To create the source, you need permission to read all event logs to make sure that the new source name is unique. Inaccessible logs: Security. 为什么? 如果这有意义的话,我正在运行 Win 7 64 位。

【问题讨论】:

    标签: biztalk event-log


    【解决方案1】:

    当您从任何应用程序写入事件日志时,需要已经创建事件源,否则应用程序本身会在写入之前尝试创建它。不幸的是,创建事件源是一项需要本地管理员权限的操作。

    所以你可以做两件事:

    1. 预创建事件源
    2. 确保您的 biztalk 主机正在运行的用户在本地管理员中(错误)

    预先创建事件源是一个更好的选择。您可以通过 powershell 命令执行此操作

    New-EventLog -LogName "Application" -Source "MyEsb" 
    

    【讨论】:

    • 问题是 BizTalk 用户对安全日志没有读取权限,请参阅我的回答。
    • 过去,我看到缺少事件源会导致问题中给出的确切错误。
    【解决方案2】:

    我似乎在陈述显而易见的事情,但 BizTalk 用户 是否有权写入事件日志?即,运行 Orchestration 的主机实例的帐户。

    你可能会发现它没有。

    HTH

    【讨论】:

    • 它有,但仍然没有运气。看我的回答。
    【解决方案3】:

    我终于找到了解决方案。正如错误所说,“要创建源,您需要读取所有事件日志的权限,以确保新源名称是唯一的。无法访问的日志:安全性。” 因此,即使 BizTalk 用户帐户具有有足够的权限写入事件日志它无权读取 EventLog\Security 日志,如备注部分的注释中所述 here

    此要求的原因是必须搜索所有事件日志,包括安全性,以确定事件源是否唯一。从 Windows Vista 开始,用户无权访问安全日志;因此,会引发 SecurityException。

    所以我刚刚授予 BizTalk 用户对 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\eventlog\Security 的读取权限,问题就解决了。

    【讨论】:

    • 在 RegEdit 中授予我的主机帐户访问该密钥的权限后,我得到:“请求的注册表访问权限是不允许的。”在运行时,在事件日志消息中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多