SynchronizationLockException + Logging

时间:2010-11-11 10:44:28

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

我刚开始使用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

由于我开启了正常的例外,这非常令人讨厌。知道它是什么或如何摆脱它?

此外,我想添加一个Trace Listener来打印所有登录VS输出。但似乎“System Diagnostings Trace Listener”不支持格式化程序,这会导致输出泛滥。我是否仍然需要编写自定义侦听器(就像我以前在v3中所做的那样)来实现非常基本的任务?

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

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

答案 2 :(得分:1)

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