【问题标题】:SynchronizationLockException + LoggingSynchronizationLockException + 日志记录
【发布时间】:2011-05-08 09:39:49
【问题描述】:

我刚开始使用企业库的 v5,似乎遇到了一些奇怪的问题。 像往常一样,我从记录开始。我刚刚添加了所需的引用并执行了以下代码:

Logger.Write("test");

到目前为止没有什么特别的。检查输出我发现了一个很奇怪的问题;当第一次调用代码并加载所有必需的库时,似乎有异常......

A first chance exception of type 'System.Threading.SynchronizationLockException' occurred in Microsoft.Practices.Unity.dll
A first chance exception of type 'System.Threading.SynchronizationLockException' occurred in Microsoft.Practices.Unity.dll

由于我打开了咳嗽异常,这很烦人。知道它是什么或如何摆脱它吗?

此外,我想添加一个跟踪侦听器以将所有登录信息打印到 VS 输出中。但似乎“系统诊断跟踪侦听器”不支持格式化程序,从而导致输出泛滥。我还需要编写一个自定义监听器(就像我在 v3 中所做的那样)来完成这个非常基本的任务吗?

【问题讨论】:

    标签: .net exception logging enterprise-library enterprise-library-5


    【解决方案1】:

    我们有fixed 这个。通过 nuget 查看最新版本。

    【讨论】:

      【解决方案2】:

      我通过更换UnityDefaultBehaviorExtension 解决了SynchronizationLockException 问题。见Can Unity be made to not throw SynchronizationLockException all the time?

      【讨论】:

        【解决方案3】:

        我找到了一个“解决方案”。 考虑到this post,企业库的 Unity 部分存在问题。 由于每个组件都是使用统一构建的,因此您总是会遇到这些异常。所以“解决方案”是禁用 SynchronizationLockException 的中断;这是通过异常设置菜单完成的,您通常在该菜单中打开已处理异常的中断。

        【讨论】:

        • 这可以通过更换 Unity 的一个内部组件来解决(不需要引号)。看我的回答。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-17
        • 1970-01-01
        • 2017-10-02
        • 1970-01-01
        • 2016-09-14
        相关资源
        最近更新 更多