저는 .NET을 처음 접했으며 다음과 같은 문제점이 있습니다. Window 인증을 사용하는 내부 응용 프로그램을 작성 중입니다. 세션 기간 동안 임시 개체를 만들어 데이터베이스에 저장해야합니다. 세션이 끝나면 더 이상 그 개체가 필요하지 않습니다..NET MVC5 세션이 종료되지 않습니다.
나는 객체를 생성하는 Session_start에 코드를 가지고 있으며 그것을 파괴하는 Session_end에 코드가 있습니다.
protected void Session_Start(Object sender, EventArgs e)
{
MyDbContext db = new MyDbContext();
MyObject o = new MyObject() { Temporary = 1 };
db.MyObjects.Add(o);
db.SaveChanges();
HttpContext.Current.Session.Add("my_object_id", o.ID);
}
protected void Session_End(Object sender, EventArgs e)
{
MyDbContext db = new MyDbContext();
try
{
MyObject o = db.MyObjects.Find(HttpContext.Current.Session["my_object_id"]);
db.MyObjects.Remove(o);
db.SaveChanges();
}
catch (Exception)
{
//do nothing
}
}
는 또한
<sessionState mode="InProc" timeout="30" />
내 문제는 이러한 개체가 생성하지만, 파괴되지 않습니다되고 있음을 내 config 파일에서 다음 XML 항목이있다. 현재 우리는 개발 서버에서 응용 프로그램을 호스팅하고 있으며 Visual Studio 내부 iisexpress 서버에서 로컬로 실행하고 있습니다.
session_end가 호출되는 것을 확인하기 위해 일종의 로깅을 추가하려고합니다. 이 응용 프로그램에는 일종의 로그 아웃 메커니즘 (Windows 인증이있는 내부 앱)이 없습니다.
나는이 권리조차도 잘 모르겠다. 어떤 도움을 주시면 감사하겠습니다.
응용 프로그램 풀의 수명은 무엇입니까 : 현재 설정을 찾을 수 있습니다
? – jgauffin
나는 정직하게 몰라. 확인 방법이 있습니까? – Smartelf
http://bradkingsley.com/iis7-application-pool-idle-time-out-settings/ 세션 시간 초과보다 작 으면 세션 종료 이벤트를받지 못할 수도 있습니다. – jgauffin