none
Azure Website + SQL Server + NHibernate RRS feed

  • Pergunta

  • Estou desenvolvendo uma aplicação em ASP.NET MVC e pretendo com ela aprender a usar a plataforma Azure.

    Publiquei uma aplicação e funciona bem, porém, em uma situação específica, eu estou com algumas dificuldades com transaction.

    Uso o NHibernate e o pattern Session Per Request. Minhas Session são criadas através de um módulo. Este módulo contém o seguinte código para as requests:

    private static void BeginRequest(object sender, EventArgs e)
    {
      var session = _sessionFactory.OpenSession();
      session.BeginTransaction();
      CurrentSessionContext.Bind(session);
    }
    
    private static void EndRequest(object sender, EventArgs e)
    {
      ISession session = CurrentSessionContext.Unbind(_sessionFactory);
      if (session == null) return;
      try
      {
        if (session.Transaction.IsActive)
          session.Transaction.Commit();
      }
      catch (Exception ex)
      {
        session.Transaction.Rollback();
        throw ex;
      }
      finally
      {
        session.Close();
        session.Dispose();
      }
    }

    E na seguinte página:

    http://soocial.azurewebsites.net/cidade/sao_paulo_sp/problemas

    Quando dou o POST no formulário, está dando um erro:

    [TransactionException: Transaction not connected, or was disconnected]
    NHibernate.Transaction.AdoTransaction.CheckNotZombied() +156
    NHibernate.Transaction.AdoTransaction.Rollback() +146
    Plugbox.Soocial.Data.Infra.NHibernateSessionPerRequest.EndRequest(Object sender, EventArgs e) +109
    System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +136
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69

    Alguém sabe como resolver isso? Ou o que gera esse erro?

    Valeu!



    Juliano Oliveira

    sexta-feira, 12 de abril de 2013 17:39

Todas as Respostas