当前位置:编程学习 > C#/ASP.NET >>

关于NHibernate错误求救

操作描述:程序在添加时没有错误。主要是save()和saveorupdate()操作出现这个错误--------------------------------------------------------------------------------


Illegal attempt to associate a collection with two open sessions 
 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

 异常详细信息: NHibernate.HibernateException: Illegal attempt to associate a collection with two open sessions

源错误: 



行 326:                }
行 327:                ServiceFactory.ProfilessService.Save(p);
行 328:
行 329:            }
行 330:
  

源文件:  F:\asp.net\源码\Whir.Profile\WhirProfileProvider.cs    行:  328 

堆栈跟踪: 



[HibernateException: Illegal attempt to associate a collection with two open sessions]
   NHibernate.Collection.AbstractPersistentCollection.SetCurrentSession(ISessionImplementor session) +152
   NHibernate.Event.Default.WrapVisitor.ProcessCollection(Object collection, CollectionType collectionType) +38
   NHibernate.Event.Default.AbstractVisitor.ProcessValue(Object value, IType type) +58
   NHibernate.Event.Default.WrapVisitor.ProcessValue(Int32 i, Object[] values, IType[] types) +39
   NHibernate.Event.Default.AbstractVisitor.ProcessEntityPropertyValues(Object[] values, IType[] types) +47
   NHibernate.Event.Default.AbstractSaveEventListener.VisitCollectionsBeforeSave(Object entity, Object id, Object[] values, IType[] types, IEventSource source) +39
   NHibernate.Event.Default.AbstractSaveEventListener.PerformSaveOrReplicate(Object entity, EntityKey key, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) +259
   NHibernate.Event.Default.AbstractSaveEventListener.PerformSave(Object entity, Object id, IEntityPersister persister, Boolean useIdentityColumn, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) +317
   NHibernate.Event.Default.AbstractSaveEventListener.SaveWithGeneratedId(Object entity, String entityName, Object anything, IEventSource source, Boolean requiresImmediateIdAccess) +278
   NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent event) +24
   NHibernate.Event.Default.DefaultSaveEventListener.SaveWithGeneratedOrRequestedId(SaveOrUpdateEvent event) +20
   NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.EntityIsTransient(SaveOrUpdateEvent event) +63
   NHibernate.Event.Default.DefaultSaveEventListener.PerformSaveOrUpdate(SaveOrUpdateEvent event) +66
   NHibernate.Event.Default.DefaultSaveOrUpdateEventListener.OnSaveOrUpdate(SaveOrUpdateEvent event) +182
   NHibernate.Impl.SessionImpl.FireSave(SaveOrUpdateEvent event) +159
   NHibernate.Impl.SessionImpl.Save(Object obj) +152
   Spring.Data.NHibernate.SaveObjectHibernateCallback.DoInHibernate(ISession session) +64
   Spring.Data.NHibernate.HibernateTemplate.Execute(IHibernateCallback action, Boolean exposeNativeSession) +392

[HibernateSystemException: Illegal attempt to associate a collection with two open sessions]
   Spring.Data.NHibernate.HibernateTemplate.Execute(IHibernateCallback action, Boolean exposeNativeSession) +719
   Spring.Data.NHibernate.HibernateTemplate.Save(Object entity) +72
   Spring.Data.NHibernate.Generic.HibernateTemplate.Save(Object entity) +48
   Whir.Core.DaoBase.Repository`1.Save(T model) +431
   Whir.Core.ServiceBase.AbstractService`1.Save(T model) +320
   _dynamic_Whir.Core.ServiceBase.AbstractService`1[[Whir.Model.Profiless, Whir.Model, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].Save(Object , Object[] ) +138
   Spring.Reflection.Dynamic.SafeMethod.Invoke(Object target, Object[] arguments) +343
   Spring.Aop.Framework.DynamicMethodInvocation.InvokeJoinpoint() +188
   Spring.Aop.Framework.AbstractMethodInvocation.Proceed() +137
   Spring.Transaction.Interceptor.TransactionInterceptor.Invoke(IMethodInvocation invocation) +233
   Spring.Aop.Framework.AbstractMethodInvocation.Proceed() +399
   Spring.Aop.Framework.DynamicProxy.AdvisedProxy.Invoke(Object proxy, Object target, Type targetType, MethodInfo targetMethod, MethodInfo proxyMethod, Object[] args, IList interceptors) +184
   CompositionAopProxy_904c0f68914d4571b70902b2f16e29e4.Save(Profiless model) +160
   Whir.Profile.WhirProfileProvider.UpdateActivityDates(String userName, Boolean activityOnly, String appName) in F:\asp.net\源码\Whir.Profile\WhirProfileProvider.cs:328
   Whir.Profile.WhirProfileProvider.SetPropertyValues(SettingsContext context, SettingsPropertyValueCollection collection) in F:\asp.net\源码\Whir.Profile\WhirProfileProvider.cs:130
   System.Configuration.SettingsBase.SaveCore() +375
   System.Configuration.SettingsBase.Save() +93
   System.Web.Profile.ProfileBase.SaveWithAssert() +31
   System.Web.Profile.ProfileBase.Save() +63
   AddCart.ProcessRequest(HttpContext context) in f:\asp.net\Ajax\Order\AddCart.ashx:125
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75

  


--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.5472; ASP.NET 版本:2.0.50727.5471  "NetworkError: 500 Internal Server Error -  NHibernate --------------------编程问答-------------------- 会话没有关闭,出现了同时有两个打开的会话访问同一个集合。 --------------------编程问答--------------------
引用 1 楼 devmiao 的回复:
会话没有关闭,出现了同时有两个打开的会话访问同一个集合。
 我需要的是解决方案……求 --------------------编程问答-------------------- 补充一点哦。我在VS环境运行时是正常的。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,