HI, 나는 내가 NHibernate에 세션에 액세스 할 때마다 내가 전화 저장소를 내 NHibernate에 응용 프로그램 에서 사용자 지정 역할 공급자를 구현하고asp.net 사용자 지정 역할 공급자 NHibernate에 오류
.
그래서 내 역할 공급자는 그때 필터링하고 //
public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config) {
base.Initialize(name, config);
Repository = new Repository();
}
가 그럼 난
public override string[] GetRolesForUser(string username) {
var users = Repository.QueryAll<Users>();
를 오버라이드 (override) 자체를 초기화 할 때 너무
}
그러나이 함수가 호출되고 I에 항상 NHibernate 세션이 닫힌다는 에러를 얻는다. nhibernate 소스 코드를 디버깅했는데 여기에있는 세션이 내 컨트롤러의 세션과 다른 GUID를 가지고 있음이 드러났습니다 (ASP.NET MVC도 사용하고 있습니다). 그리고이 특정 세션은 내가 여기 올 때까지 닫힙니다. 누구를 닫을 지 모르겠습니다. 나는 응용 프로그램이 시작될 때 시작된다는 것을 알고 있습니다.
내가 뭘 잘못하고 있는지 알 수있는 사람이 있습니까? 이 공급자에서 여전히 Nhibernate를 사용하려고하지만 더 이상 오류를 얻지는 않습니다. 감사합니다.
세션 관리 전략은 무엇입니까 :
은 내가이 대신에 넣어 생성자 완전히 을 삭제? –
application_start에서 세션 팩토리를 시작하고 저장소 생성자에서 큐어 세션을 얻습니다. – Para
언제, 어디서 세션을 열고 닫습니까? –