Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [[NHibernate.Util.ADOExceptionReporter]] : System.InvalidOperationException: There is already an open DataReader associated with this Command which must be closed first.
- at System.Data.SqlClient.SqlInternalConnectionTds.ValidateConnectionForExecute(SqlCommand command)
- [[NHibernate.Transaction.AdoTransaction]] : Begin transaction failed
- System.Data.SqlClient.SqlException (0x80131904): The server failed to resume the transaction. Desc:3b00000006.
- [[NHibernate.Transaction.AdoTransaction]] : Commit failed
- System.NullReferenceException: Object reference not set to an instance of an object.
- [[NHibernate.Transaction.AdoTransaction]] : Commit failed
- System.Data.SqlClient.SqlException (0x80131904): The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION.
- [[NHibernate.Util.ADOExceptionReporter]] : System.InvalidOperationException: The transaction is either not associated with the current connection or has been completed.
- at System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async)
- [[NHibernate.Transaction.AdoTransaction]] : Begin transaction failed
- System.InvalidOperationException: SqlConnection does not support parallel transactions.
- protected void Application_Start()
- {
- AreaRegistration.RegisterAllAreas();
- HibernatingRhinos.Profiler.Appender.NHibernate.NHibernateProfiler.Initialize();
- RegisterGlobalFilters(GlobalFilters.Filters);
- RegisterRoutes(RouteTable.Routes);
- _sessionFactory = (new WebClientSessionManager()).MakeSessionFactory();
- _sessionFactoryNotWeb = ClientSessionManager.MakeSessionFactory();
- }
- protected void Application_BeginRequest(object sender, EventArgs e)
- {
- _session = _sessionFactory.OpenSession();
- _sessionNotWeb = _sessionFactoryNotWeb.OpenSession();
- CurrentSessionContext.Bind(_sessionNotWeb);
- CurrentSessionContext.Bind(_session);
- _session.BeginTransaction();
- _sessionNotWeb.BeginTransaction();
- }
- protected void Application_EndRequest(object sender, EventArgs e)
- {
- //Same code is repeated for the _sessionFactoryNotWeb
- ISession session = CurrentSessionContext.Unbind(_sessionFactory);
- if (session != null)
- {
- if (session.Transaction.IsActive)
- {
- try
- {
- session.Transaction.Commit();
- }
- catch
- {
- session.Transaction.Rollback();
- }
- }
- try
- {
- session.Dispose();
- }
- catch
- {
- }
- }
- public static ISession WebSession()
- {
- if (CurrentSessionContext.HasBind(MvcApplication._sessionFactory))
- {
- if (MvcApplication._sessionFactory.GetCurrentSession().IsOpen)
- {
- return MvcApplication._sessionFactory.GetCurrentSession();
- }
- else
- {
- log4net.LogManager.GetLogger(typeof(DBHandler)).Debug("Unbinding NHibernate session");
- CurrentSessionContext.Unbind(MvcApplication._sessionFactory);
- return WebSession();
- }
- }
- else
- {
- log4net.LogManager.GetLogger(typeof(DBHandler)).Debug("Initialising NHibernate session");
- var session = MvcApplication._sessionFactory.OpenSession();
- CurrentSessionContext.Bind(session);
- session.BeginTransaction();
- return session;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement