我在ASP.NET中实现了一个Web服务。
我在Global.asax事件处理程序中实例化我的NHibernate会话,如下所示:
protected void Application_BeginRequest(object sender, EventArgs e)
{
NHibernateInitializer.Instance().InitializeNHibernateOnce(
() => InitializeNHibernateSession());
}
private void InitializeNHibernateSession()
{
NHibernateSession.Init(
webSessionStorage,
new string[] { Server.MapPath("~/bin/DAL.Server.Data.dll") },
new AutoPersistenceModelGenerator().Generate(),
Server.MapPath("~/NHibernate.config"));
}
我的问题是,每当我需要更新NHibernate.config连接字符串以连接到不同的数据库(用于测试目的,在部署服务器上)时,NHibernate仍然保持与先前连接的数据库的连接。
只有重新启动IIS才能解决此问题。有没有人知道这是否是由于IIS中的缓存?还是我错过了一些设置?提前谢谢!
答案 0 :(得分:1)
nhibernate.config文件中的更改不会强制重新启动IIS应用程序,这意味着它继续使用ISessionFactory和IOC容器配置的相同功能。
最好是将nhibernate配置为使用存储在web.config文件中并通过名称引用的连接字符串。
您可以做的另一件事是将nhibernate配置移动到web.config文件中。然后继续它会强制重新配置nhibernate。