2009-06-12 2 views
1

데이터베이스 내에 저장되어있는 SessionObject를 사용하고 있습니다. SessionObject는 IDisposable을 구현하는 SessionObjecWrapper 내에 래핑됩니다. 그러면 SessionObjectWrapper가 HttpContext.Current.Session에 배치됩니다.HttpContext.Current.Session의 IDisposable 개체가 Application_End에 있습니까?

세션 만료시 ASP.NET은 세션 내의 모든 개체를 "처리"합니까?

그리고 애플리케이션 종료시?

나는 이것을 테스트하고 있는데, 이런 일이 일어나지 않을 것입니다. 어떻게하면 이런 일이 깨끗하게 이루어져야합니까?

+0

또한 웹 사이트를 종료 할 때 (web.config를 터치하여) global.asax의 Session_End 메소드가 호출되지 않음을 확인했습니다. – Jaap

답변

2

개체를 직접 처리하거나 대신 finalizer 메서드를 사용할 수 있습니다. GC는 절대로 Dispose()를 호출하지 않지만 종료자를 호출합니다.

Dispose()에서 수행해야 할 작업을 알지 못합니다.

+0

그래, 그 뜻은 다른 관리 객체에 액세스하는 것과 같은 것입니다. Session_End를 구현하고 세션의 항목을 반복하고 IDisposable을 구현하는 Dispose를 호출해야합니다> – Jaap