我发生了一件奇怪的事情,我怀疑这与 nservicebus 中的事务范围有关,但我认为在我走错方向之前应该问一下。
这是我的问题:我有一个托管在 azure worker 角色中的端点,与 azure queues 进行通信。我正在我的一些处理程序中使用针对 sql server 2012 的实体框架 5 进行非常简单的数据库写入。一切都很好并且一切正常,直到我将工作角色扩展到多个实例。
当我这样做时,我开始出现零星的死锁错误:错误 1205:事务(进程 ID)与另一个进程在资源上死锁,并被选为死锁受害者。重新运行事务。
我应该考虑更改端点中的默认隔离级别,还是我在这里看错了方向。
我对所有语句都进行了解释,所以我确信没有完整的扫描,并且数据库没有负载;似乎导致这种情况的唯一变量是在 azure 中使用更多实例水平扩展。