0

FluentNHibernateを使用してイントラネットMVCWebアプリケーションに取り組んでいます。

誰もが知っているように、必要なものを作成するのISessionFactoryは重いので、一度だけ行う必要があります。したがって、の間にGlobal.asaxファイルに作成し、Application_Start将来使用するためにアプリケーションにキャッシュします。

問題は、データベースに対するアクセス許可をすでに持っているユーザーにのみアクセスを許可したいということです。

これは、理論的Integrated Security=SSPIには、(SQLユーザー名とパスワードを提供するのではなく)接続文字列で定義することで解決できます。

ただし、これにより、中にエラーが発生します。これは、DBに接続するためのアクセス許可を持たないアプリケーションをホストしているプロセスによって実行されているFluently.Configure中に構成が発生するためです。Application_Start

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

1

BeginRequest代わりに初期化することができますApplication_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 に答える