我们有一个简单的 nservicebus (v4) 设置,其中 Web 应用程序将各种消息发送到后端端点进行处理。在提高并发级别之前,一切都进行得很顺利。通常,但并非所有时候,我们都会遇到以下异常 -
System.InvalidOperationException: There is already an open DataReader associated with this Command which must be closed first.
我猜这一定是 NHibernate(v3.1) 会话管理的问题。现在,我们在每个处理程序中创建一个新的会话工厂和具有单例生命周期的会话(所以每个处理程序都应该有自己的会话,对吧?)。基于此异常,我最好的猜测是会话上的连接正在被另一个处理程序使用?
任何人都可以解释一下吗?为什么这是一个不一致的问题?