0

我正在使用 Fluent NHibernate 开发 Intranet MVC Web 应用程序。

众所周知,创造必要ISessionFactory是很重的,因此应该只做一次。因此,我在 期间在 Global.asax 文件中创建它Application_Start,然后将其缓存在应用程序中以备将来使用。

问题是我只想向已经拥有数据库权限的用户授予访问权限。

理论上,这可以通过Integrated Security=SSPI在连接字符串中定义(而不是通过提供 SQL 用户名和密码)来解决。

但是,这会在 期间引发错误Fluently.Configure,因为配置发生在 期间Application_Start,该配置由托管应用程序的进程运行,该进程无权连接到数据库。

我该如何解决这个问题?

4

1 回答 1

1

您可以将其初始化BeginRequestApplication_Start

private static bool _initialized = false;
private static object _syncRoot = new object();

protected void Application_BeginRequest(object source, EventArgs e)
{
    if (_initialized)
    {
        return;
    }

    lock (_initialized)
    {
        if (_initialized)
        {
            return;
        }

        // Initialize the session factory here and cache it

        _initialized = true;
    }
}
于 2012-06-20T13:01:04.680 回答