Hola María Teresa, me gustaría saber que hay dentro de esta línea: > var session = NHibernateSession.Session(NHibernateSession.BBDD_OFITOUR);
Bajo ningún punto de vista deberías usar la misma session, desde diferentes threads, y creo que viene por ahí tu problema. El 30 de agosto de 2010 12:18, Maria Teresa Ruiz Espinosa < [email protected]> escribió: > Este error también nos da > > System.Data.SqlClient.SqlException: No se permite una nueva transacción > porque hay otros subprocesos en ejecución en la sesión. > > NHibernate.TransactionException: Begin failed with SQL exception ---> > System.Data.SqlClient.SqlException: No se permite una nueva transacción > porque hay otros subprocesos en ejecución en la sesión. > en System.Data.SqlClient.SqlConnection.OnError(SqlException exception, > Boolean breakConnection) > en System.Data.SqlClient.SqlInternalConnection.OnError(SqlException > exception, Boolean breakConnection) > en System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() > en System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand > cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet > bulkCopyHandler, TdsParserStateObject stateObj) > en > System.Data.SqlClient.TdsParser.TdsExecuteTransactionManagerRequest(Byte[] > buffer, TransactionManagerRequestType request, String transactionName, > TransactionManagerIsolationLevel isoLevel, Int32 timeout, > SqlInternalTransaction transaction, TdsParserStateObject stateObj, Boolean > isDelegateControlRequest) > en > System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransactionYukon(TransactionRequest > transactionRequest, String transactionName, IsolationLevel iso, > SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest) > en > System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransaction(TransactionRequest > transactionRequest, String name, IsolationLevel iso, SqlInternalTransaction > internalTransaction, Boolean isDelegateControlRequest) > en > System.Data.SqlClient.SqlInternalConnection.BeginSqlTransaction(IsolationLevel > iso, String transactionName) > en > System.Data.SqlClient.SqlInternalConnection.BeginTransaction(IsolationLevel > iso) > en System.Data.SqlClient.SqlConnection.BeginDbTransaction(IsolationLevel > isolationLevel) > en > System.Data.Common.DbConnection.System.Data.IDbConnection.BeginTransaction(IsolationLevel > isolationLevel) > en NHibernate.Transaction.AdoTransaction.Begin(IsolationLevel > isolationLevel) > --- Fin del seguimiento de la pila de la excepción interna --- > en NHibernate.Transaction.AdoTransaction.Begin(IsolationLevel > isolationLevel) > en NHibernate.Transaction.AdoTransaction.Begin() > en NHibernate.Impl.SessionImpl.BeginTransaction() > en > Ofi.OfiTourWeb.Repository.Consultas.ConsultaExpedientesUsuario.DameExpediente(String > idExpediente) en > C:\Source\Ofi.OfiTourWeb\Ofi.OfiTourWeb.Repository\Consultas\ConsultaExpedientesUsuario.cs:línea > 228 > en Ofi.OfiTourWeb.Repository.RepositorioReservas.DameExpediente(String > idExpediente) en > C:\Source\Ofi.OfiTourWeb\Ofi.OfiTourWeb.Repository\RepositorioReservas.cs:línea > 54 > en Ofi.OfiTourWeb.Core.Services.ServicioReservas.DameExpediente(String > idExpediente) en > C:\Source\Ofi.OfiTourWeb\Ofi.OfiTourWeb.Core\Services\ServicioReservas.cs:línea > 99 > en > Ofi.OfiTourWeb.Web.Controllers.ReservasController.MuestraResumenReservaMail(String > id) en > C:\Source\Ofi.OfiTourWeb\Ofi.OfiTourWeb.Web\Controllers\ReservasController.cs:línea > 272 > en lambda_method(Closure , ControllerBase , Object[] ) > en System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase > controller, Object[] parameters) > en System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext > controllerContext, IDictionary`2 parameters) > en > System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext > controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 > parameters) > en > System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a() > en > System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter > filter, ActionExecutingContext preContext, Func`1 continuation) > en > System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassd.<>c__DisplayClassf.<InvokeActionMethodWithFilters>b__c() > en > System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext > controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, > IDictionary`2 parameters) > en System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext > controllerContext, String actionName) > en System.Web.Mvc.Controller.ExecuteCore() > en System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) > en > System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext > requestContext) > en System.Web.Mvc.MvcHandler.<>c__DisplayClass8.<BeginProcessRequest>b__4() > en > System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass1.<MakeVoidDelegate>b__0() > en > System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult > _) > en System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End() > en System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) > en > System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult > result) > en > System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() > en System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& > completedSynchronously) > > > El 30 de agosto de 2010 16:50, NM <[email protected]> escribió: > > Buenas ya escribi anteriormente con problemas con nhibernate >> >> Esta función de vez en cuando me da el errro que se especifica debajo >> >> var session = >> NHibernateSession.Session(NHibernateSession.BBDD_OFITOUR); >> using (var transaction = session.BeginTransaction()) >> { >> usuario = session >> .CreateQuery(@" >> from NhUsuarioWeb U >> inner join fetch U.NivelAcceso >> inner join fetch U.Oficina O >> inner join fetch O.TipoClienteEstadistica >> inner join fetch U.Agente >> where U.UsuarioWeb = :login AND >> U.AccesoPermitido = 'S'") >> .SetParameter("login", login) >> .SetResultTransformer(new >> RepositorioDtoUsuarioLoginTransformer()) >> .UniqueResult<Usuario>(); >> >> transaction.Commit(); >> } >> >> >> System.InvalidOperationException: >> Ya hay un DataReader abierto asociado a este Command, debe cerrarlo >> primero. >> >> NHibernate.TransactionException: Begin failed with SQL exception ---> >> System.InvalidOperationException: Ya hay un DataReader abierto >> asociado a este Command, debe cerrarlo primero. >> en >> >> System.Data.SqlClient.SqlInternalConnectionTds.ValidateConnectionForExecute(SqlCommand >> command) >> en >> >> System.Data.SqlClient.SqlInternalConnection.BeginSqlTransaction(IsolationLevel >> iso, String transactionName) >> en >> >> System.Data.SqlClient.SqlInternalConnection.BeginTransaction(IsolationLevel >> iso) >> en >> System.Data.SqlClient.SqlConnection.BeginDbTransaction(IsolationLevel >> isolationLevel) >> en >> >> System.Data.Common.DbConnection.System.Data.IDbConnection.BeginTransaction(IsolationLevel >> isolationLevel) >> en NHibernate.Transaction.AdoTransaction.Begin(IsolationLevel >> isolationLevel) >> --- Fin del seguimiento de la pila de la excepción interna --- >> en NHibernate.Transaction.AdoTransaction.Begin(IsolationLevel >> isolationLevel) >> en NHibernate.Transaction.AdoTransaction.Begin() >> en NHibernate.Impl.SessionImpl.BeginTransaction() >> en >> >> Ofi.OfiTourWeb.Repository.RepositorioUsuarioNh.DameDtoUsuarioLoginPorLogin(String >> login) en C:\Source\Ofi.OfiTourWeb\Ofi.OfiTourWeb.Repository >> \RepositorioUsuarioNh.cs:línea 52 >> en >> >> Ofi.OfiTourWeb.Repository.RepositorioUsuario.DameDtoUsuarioLoginPorLogin(String >> login) en C:\Source\Ofi.OfiTourWeb\Ofi.OfiTourWeb.Repository >> \RepositorioUsuario.cs:línea 36 >> en >> >> Ofi.OfiTourWeb.Core.Services.ServicioLoginUsuario.DameUsuarioPorLogin(String >> loginUsuario) en C:\Source\Ofi.OfiTourWeb\Ofi.OfiTourWeb.Core\Services >> \ServicioLoginUsuario.cs:línea 115 >> en >> >> Ofi.OfiTourWeb.Web.Controllers.BuscarController.RellenaFiltroBusquedaConDatosUsuario(FiltroBusqueda >> filtroBusqueda) en C:\Source\Ofi.OfiTourWeb\Ofi.OfiTourWeb.Web >> \Controllers\BuscarController.cs:línea 103 >> en >> >> Ofi.OfiTourWeb.Web.Controllers.BuscarController.ProcesarBusqueda(FiltroBusqueda >> filtroBusqueda) en C:\Source\Ofi.OfiTourWeb\Ofi.OfiTourWeb.Web >> \Controllers\BuscarController.cs:línea 119 >> en >> >> Ofi.OfiTourWeb.Web.Controllers.BuscarController.Estancias(FiltroBusquedaEstancias >> filtroBusquedaEstancias) en C:\Source\Ofi.OfiTourWeb\Ofi.OfiTourWeb.Web >> \Controllers\BuscarController.cs:línea 30 >> en lambda_method(Closure , ControllerBase , Object[] ) >> en System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase >> controller, Object[] parameters) >> en >> System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext >> controllerContext, IDictionary`2 parameters) >> en >> >> System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext >> controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 >> parameters) >> en >> >> System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a() >> en >> >> System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter >> filter, ActionExecutingContext preContext, Func`1 continuation) >> en >> >> System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassd.<>c__DisplayClassf.<InvokeActionMethodWithFilters>b__c() >> en >> >> System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext >> controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, >> IDictionary`2 parameters) >> en >> System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext >> controllerContext, String actionName) >> en System.Web.Mvc.Controller.ExecuteCore() >> en System.Web.Mvc.ControllerBase.Execute(RequestContext >> requestContext) >> en >> >> System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext >> requestContext) >> en >> System.Web.Mvc.MvcHandler.<>c__DisplayClass8.<BeginProcessRequest>b__4() >> en >> >> System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass1.<MakeVoidDelegate>b__0() >> en >> >> System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult >> _) >> en >> System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`1.End() >> en System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult >> asyncResult) >> en >> >> System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult >> result) >> en >> >> System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() >> en System.Web.HttpApplication.ExecuteStep(IExecutionStep step, >> Boolean& completedSynchronously) >> >> >> Por favor necesito solucionar este problema ya, pero no encuentro la >> forma. >> >> -- >> Para escribir al Grupo, hágalo a esta dirección: >> [email protected] >> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >> > > -- > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > Para más, visite: http://groups.google.com/group/NHibernate-Hispano > -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
