2010-03-31 2 views
2

나는 NHibernate에에서 folloinwg 오류가 점점 오전 : 나는 .NET Windows 서비스에 NHibernate에 사용하고NHibernate 예외 "세션이 닫혔습니다! 객체 이름 : 'Session'."

System.ObjectDisposedException: Session is closed! Object name: 'ISession'. 
    at NHibernate.Impl.AbstractSessionImpl.ErrorIfClosed() 
    at NHibernate.Impl.AbstractSessionImpl.CheckAndUpdateSessionStatus() 
    at NHibernate.Impl.SessionImpl.FireSave(SaveOrUpdateEvent event) 
    at NHibernate.Impl.SessionImpl.Save(Object obj) 

합니다.
예외에 대한 문제를 추적 할 수 없습니다. 이 예외는 매우 자주 발생합니다.
이 예외를 수정하는 데 도움을 줄 수있는 사람이 누구입니까? 오류가 말한대로

+0

예 .. 연결을 여는 중입니다. 사실 나는 레코드 삽입 일괄 처리 (200) 세션과 커밋 세션 및 해당 레코드를 DB에서 또한 사용할 수있는 파일 가져 오기 응용 프로그램을하고,하지만 2 또는 3 일괄 처리 후이 예외를 제공하고 있습니다. 나는 그것을 이해할 수 없다. – nRk

답변

2


NRK는 - 당신이 당신의 ISession이 닫힐 때 객체를 저장하려고하는 것 같습니다. 그것을 여실 까? 아니면 조기에 폐쇄되고 있습니까?

업데이트 : NHibernate 로그를 확인 했습니까?

+0

도 이와 비슷하지만 계단식 = 없음으로 설정하면 문제가 해결됩니다. – nRk

+0

다행 이군. 내가 너라면, nhibernate log4net 로그를 살펴보고 어쩌면 무슨 일이 벌어 지는지에 대한 정보를 얻을 수있을 것이다. http://stackoverflow.com/questions/743323/nhibernate-enabling- log4net – UpTheCreek

+0

그리고 그 NHibernate 로그는 어디입니까? – vapcguy

6

다음과 같은 구문을 사용하여 세션을 두 번 이상 사용하는 것으로 추측하고 있습니다. 세션 사용 코드 중 일부를 게시 할 수 있습니까?

HTH,
Berryl

잘못된 - 세션이 사용하는 첫 번째 구성 후 닫혀 : 세션 Better-

using(var session = _sessionFactory.GetCurrentSession() 
using(var tx = _session.BeginTransaction(){ 
    ... do something 
    tx.Commit(); 
} 


using(var session = _sessionFactory.GetCurrentSession() 
using(var tx = _session.BeginTransaction(){ 
    ... do something else 
} 

가 닫혀이 작업이 완료있어 후

var session = _sessionFactory.GetCurrentSession(); 

using(var tx = _session.BeginTransaction(){ 
    ... do something 
    tx.Commit(); 
} 


using(var tx = _session.BeginTransaction(){ 
    ... do something else 
    tx.Commit() 
} 
session.Close() 
0

우리도 똑같은 문제가있었습니다. 앱 풀 매니지드 파이프 라인을 클래식으로 변경하면 우리를 위해 해결되었습니다.

관련 문제