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

Responder a