El NHibernateProfiler me dice este error: *Alert: Using a single session in multiple threads is likely a bug*
Es a esto a lo que te refieres Fabio no? entices nos aconsejas multiSessionFactory El 30 de agosto de 2010 19:07, Maria Teresa Ruiz Espinosa < [email protected]> escribió: > Es debido a que nosotros las clase Nh no son nuestras entidades de negocio, > de las Nh pasamos a las que usamos (ej: de NhUsuario pasamos a Usuario en el > Transformer ). Es por que la base de datos ya existía cuando nos pusimos a > hacer la aplicación Web. > > > > El 30 de agosto de 2010 18:59, Fabio Maulo <[email protected]>escribió: > > Hay algo que deberiamos conocer de lo que hace la clase > RepositorioDtoUsuarioLoginTransformer >> ? >> >> Me resulta muy raro que uses un ResultTrasformer para un query que se >> retorna una sola instancia (UniqueResult). >> >> 2010/8/30 NM <[email protected]> >> >> 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 >> >> >> >> >> -- >> Fabio Maulo >> >> -- >> 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
