Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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
.net “有什么问题吗?”;“Microsoft.Practices.EnterpriseLibrary.Caching”;当试图访问“时”;CacheFactory.GetCacheManager()&引用;?_.net_Wcf_Caching - Fatal编程技术网

.net “有什么问题吗?”;“Microsoft.Practices.EnterpriseLibrary.Caching”;当试图访问“时”;CacheFactory.GetCacheManager()&引用;?

.net “有什么问题吗?”;“Microsoft.Practices.EnterpriseLibrary.Caching”;当试图访问“时”;CacheFactory.GetCacheManager()&引用;?,.net,wcf,caching,.net,Wcf,Caching,我做错了什么?我没有做什么? (我在.NET 4.0 WCF服务中使用此代码) 当调试器点击return时,它抛出以下异常: 发生System.Threading.SynchronizationLockException异常 Message=从未同步的代码块调用了对象同步方法。 Source=Microsoft.Practices.Unity 堆栈跟踪: 在e:\Builds\Unity\UnityTemp\Compile\Unity\Unity\Src\life\SynchronizedLif

我做错了什么?我没有做什么? (我在.NET 4.0 WCF服务中使用此代码)

当调试器点击return时,它抛出以下异常:

发生System.Threading.SynchronizationLockException异常 Message=从未同步的代码块调用了对象同步方法。 Source=Microsoft.Practices.Unity 堆栈跟踪: 在e:\Builds\Unity\UnityTemp\Compile\Unity\Unity\Src\life\SynchronizedLifetimeManager.cs中的Microsoft.Practices.Unity.SynchronizedLifetimeManager.TryExit()中 内部异常:


这是Enterprise library中的错误吗?

在尝试在WCF服务中创建数据库时,我遇到了相同的错误。(Entlib 5.0、.net 4.0)


我们通过使用SqlDatabase对象来解决这个问题。数据库可能已被弃用,因此我将首先检查您的代码,并确保您尝试执行的操作仍然受支持。

许多企业库块中确实存在此问题。这与实现统一的方式有关。实际的问题不是代码本身不正确。异常被捕获,但调试器似乎忽略了这一事实

此处描述了该问题:

不幸的是,要避免这个错误,您所能做的并不多。如果模式与实践团队在解决这个问题时能够更加迭代,那肯定是件好事;)


快乐编码

异常似乎是由企业库Unity块在内部引发的,但是它也会被处理。这让我把我的听力拉了出来,直到我意识到当为CLR异常启用一个异常时我已经中断了

调试->异常


当抛出异常时,取消勾选此选项可阻止调试器中断。

我在向使用EntLib的旧程序添加功能时遇到此问题。关闭调试器异常感觉像是一种黑客行为。在VS 2015中,工具|选项|调试|仅支持我的代码选项对我有用

        private static ICacheManager GetCacheManager()
    {
        try
        {                
            return CacheFactory.GetCacheManager();   
        }
        catch (SynchronizationLockException ex)
        {
            EventLogHelper.WriteError(ex);
        }
        catch (ConfigurationException ex)
        {
            EventLogHelper.WriteError(ex);
        }
        return null;
    }
Database db = DatabaseFactory.CreateDatabase();