WCF服务配置为
InstanceContextMode = InstanceContextMode.PerCall
ConcurrencyMode = ConcurrencyMode.Multiple
我正在使用Entity Framework 3.1。只有负载测试,当我达到五个并发用户时,我得到了OptimisticConcurrencyException。
我将同步BLL.Update方法。或者使用ConcurrencyMode.Single。我无法使用ClientWins和StoreWins技术。
我将定义一个私有静态对象实例并锁定它以同步对该方法的访问。我如何防止其中一个线程被饿死。有没有办法使锁定公平?锁定静态引用是一个好主意吗?
答案 0 :(得分:1)
您获得的异常是OptimisticConcurrencyException。由于您的事务使用的是Optimistic Concurrency,而且有2个用户正在更改相同的数据,因此您将收到此信息。
至少有3种方法可以解决它:
使用私有静态Object实例的想法与在单一模式下设置WCF服务具有相同的效果。