我的 mvc+ef+unity 应用程序在较高负载(每秒 10+ 个请求)下遇到随机错误(每天几次):
- 连接未关闭/连接的当前状态为正在连接
- Count 查询死锁(无显式事务)
- 已添加具有相同密钥的项目。在 System.Data.Entity.DbContext.SetTEntity中解析 DbContext
- 远程主机关闭了连接。错误代码为 0x80070057
- 已经有一个与此命令关联的打开的 DataReader,必须先关闭它。- 我打开 MARS 来摆脱这个问题(虽然我相信它应该在没有 MARS 的情况下正常工作,没有嵌套查询),这可能会导致另一个随机错误:
- 服务器将断开连接,因为客户端驱动程序在会话处于单用户模式时发送了多个请求。
我使用PerRequestLifetimeManager 的这个实现并尝试了 Unity.Mvc3 也没有任何区别。