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