【发布时间】:2011-06-20 14:32:33
【问题描述】:
我在使用 Windsor、设施和 nhibernate 配置应用程序时遇到问题。
我遇到了这个异常:
ObjectDisposedException: Session is closed
windsor 是否应该负责为每个请求实例化会话并在我有这样的配置时打开它?我可以错过一些配置吗? 这是我的配置:
public class PersistenceFacility : AbstractFacility
{
protected override void Init()
{
Configuration config = BuildDatabaseConfiguration();
Kernel.Register(
Component.For<ISessionFactory>()
.LifeStyle.Singleton
.UsingFactoryMethod(config.BuildSessionFactory),
Component.For<ISession>()
.LifeStyle.PerWebRequest
.UsingFactoryMethod(k => k.Resolve<ISessionFactory>().OpenSession()));
}
private Configuration BuildDatabaseConfiguration()
{
return Fluently.Configure()
.Database(SetupDatabase)
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<RnUlice>())
.ExposeConfiguration(ConfigurePersistence)
.BuildConfiguration() ;
}
......
}
【问题讨论】:
-
请完整的堆栈跟踪。
-
在哪个执行点得到异常?
-
我加载了我有搜索框的页面我尝试搜索一些东西,但我得到了这个异常。请注意,当我在会话中删除 LifeStyle.PerWebRequest 时一切正常(但我需要每个请求的会话)
-
请正确格式化堆栈跟踪,它几乎不可读...
标签: c# nhibernate castle-windsor facilities