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

Responder a