关于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 --------------------编程问答-------------------- 会话没有关闭,出现了同时有两个打开的会话访问同一个集合。 --------------------编程问答-------------------- 我需要的是解决方案……求 --------------------编程问答-------------------- 补充一点哦。我在VS环境运行时是正常的。
补充:.NET技术 , ASP.NET