NHibernate.HibernateException:現在のコンテキストにバインドされませんセッション
-
16-09-2019 - |
質問
私はCurrentSessionを取得しようとしています。このエラーを取得しています。
NHibernate.Context.CurrentSessionContext.CurrentSession()
で、
NHibernate.Impl.SessionFactoryImpl.GetCurrentSession()
他のヒント
デイヴィッド・Mと同じようにあなたがあなたのNHibernateのセッションを結合していることを確認する必要があり、と述べました。ここで私は私のASP.NETアプリケーションで、今それを行う方法があります:
public class NHHttpModule : IHttpModule
{
public void Init(HttpApplication context)
{
context.EndRequest += ApplicationEndRequest;
context.BeginRequest += ApplicationBeginRequest;
}
public void ApplicationBeginRequest(object sender, EventArgs e)
{
CurrentSessionContext.Bind(NHSessionFactory.GetNewSession());
}
public void ApplicationEndRequest(object sender, EventArgs e)
{
ISession currentSession = CurrentSessionContext.Unbind(
NHSessionFactory.GetSessionFactory());
currentSession.Close();
currentSession.Dispose();
}
public void Dispose()
{
// Do nothing
}
}
私はすべてのリクエストに応じて、私のセッションをバインドするカスタムHttpModuleをを作成し、私はこのように私のweb.configファイルにこのモジュールを追加します:
<httpModules>
<add name="NHHttpModule" type="MyApplication.Core.NHHttpModule, MyApplication,
Version=1.0.0.0, Culture=neutral" />
</httpModules>
私はあなたの設定は、この異なっていると確信しているが、これは私が私のセッションをバインドする方法のほんの一例です。これは少しお役に立てば幸いです。
Studio 2010には、2つのHttpModulesセクションを作成します、一つはIIS 7.のsystem.webあまりにも1であなたのNHibernateのHttpModuleを登録してくださいためのものです。
所属していません StackOverflow