NHibernate和Sharp Architecture - 更改NHiberate.config后数据库连接未刷新

时间:2012-07-23 22:42:32

标签: asp.net web-services nhibernate sharp-architecture

我在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中的缓存?还是我错过了一些设置?提前谢谢!

1 个答案:

答案 0 :(得分:1)

nhibernate.config文件中的更改不会强制重新启动IIS应用程序,这意味着它继续使用ISessionFactory和IOC容器配置的相同功能。

最好是将nhibernate配置为使用存储在web.config文件中并通过名称引用的连接字符串。

您可以做的另一件事是将nhibernate配置移动到web.config文件中。然后继续它会强制重新配置nhibernate。