SQLiteSessionStateStoreProvider.DeleteExpiredSessions()는 IIS 7에서 자동으로 실행되지 않습니다. 세션 상태 저장을위한 데이터베이스가 inProc에 있었다면 런타임시 자동으로 관리되고 실제 SQL 데이터베이스에 있던 경우 SQL 에이전트가 실행 취소 할 간격으로 실행하는 스크립트가 있음을 이해합니다. 만료 된 세션. 그러나 여기에 제공된 라이브러리에 정의 된 함수가 있음에도 불구하고 : https://github.com/micahlmartin/SQLiteSessionStateStore (DeleteExpiredSessions()로 이름이 바뀌고 공개 됨) IIS 서버에서이 함수를 호출하는 방법이 확실하지 않거나 예약 된 함수를 구현해야하는 경우 백엔드에서 내 자신의 IIS 서버에서 세션 상태는 20 분 간격 만료시 사용자 지정으로 설정됩니다. 서버의 web.config와 동일한 설정으로 쿠키 모드로 설정됩니다. 데이터베이스는 현재 세션 상태에 대해 지난 7 일간의 데이터를 보유하고 있으며 백엔드에서이 데이터베이스와 상호 작용할 방법이 확실하지 않거나 일부 서비스 또는 구현이 누락 된 경우이를 알고 있습니다. C# MVC를 통해 SQLite를 통해 사용자 정의 SessionStateProvider를 실행 한 경험이있는 사람이라면이 문제를 해결하는 방법을 알아야합니다. 감사합니다. 당신의 Global.asax에서이 같은ASP.NET 사용자 지정 SQLite DeleteExpiredSessions()
0
A
답변
0
시도 뭔가 :
은 약 10 분 DeleteExpiredSessions()를 실행합니다. 잠시 동안 0.25 초마다 검사하여 응용 프로그램이 종료되는지 확인합니다. 꺼지면 멈 춥니 다.
public class Global : System.Web.HttpApplication
{
public static Task SessionCleanup { get; private set; } = null;
public static bool ApplicationEnding { get; private set; }
public static void PeriodicallyRunSesssionCleanup()
{
int cleanupInterval = 600000;//10 minutes
int sleepInterval = 250;// 1/4 second
while(!ApplicationEnding && cleanupInterval > 0)
{
Thread.Sleep(sleepInterval);
cleanupInterval -= sleepInterval;
}
if(!ApplicationEnding)
{
throw new NotImplementedException("Place your code that cleans up sessions here to have it run every 10 minutes.");
SessionCleanup = new Task(PeriodicallyRunSesssionCleanup);
SessionCleanup.Start();
}
}
protected void Application_Start(object sender, EventArgs e)
{
SessionCleanup = new Task(PeriodicallyRunSesssionCleanup);
SessionCleanup.Start();
}
protected void Application_End(object sender, EventArgs e)
{
ApplicationEnding = true;
if (SessionCleanup != null) SessionCleanup.Wait();
}
}
관련 문제
- 1. ASP.NET 세션 관리 DeleteExpiredSessions 어리석은가요?
- 2. SQLite 사용자 지정 데이터 형식?
- 3. SQLite 커서에서 사용자 지정 목록보기
- 4. 사용자 지정 속성이있는 Asp.net 사용자 지정 컨트롤
- 5. ASP.Net 사용자 지정 HttpModule
- 6. ASP.NET ID 사용자 지정
- 7. ASP.NET 사용자 지정 MembershipProvider
- 8. Asp.Net gridview 사용자 지정
- 9. ASP.Net 사용자 지정 컨트롤
- 10. ASP.NET 사용자 지정 호출
- 11. ASP.NET 사용자 지정 ObjectDataSource
- 12. ASP.NET UI 사용자 지정
- 13. ASP.NET 사용자 지정 컨트롤
- 14. SharePoint 2010 DeleteExpiredSessions 작업이 데이터베이스에 등록되었습니다.
- 15. asp.net 핵심 사용자 지정 경로 지정
- 16. ASP.NET MVC4 사용자 지정 서식 지정 방법
- 17. ASP.NET 사용자 지정 오류 페이지
- 18. ASP.NET 차트 사용자 지정 처리기
- 19. ASP.NET 사용자 지정 Windows 인증
- 20. ASP.net MVC 사용자 지정 경로
- 21. 사용자 지정 이벤트가있는 Asp.net 컨트롤
- 22. asp.net mvc 사용자 지정 HandleUnauthorizedRequest
- 23. asp.net 탐색 사용자 지정 페이지
- 24. ASP.NET 코어의 사용자 지정 특성
- 25. ASP.Net 사용자 지정 호출 (C#)
- 26. ASP.NET 유니버설 공급자 사용자 지정
- 27. 사용자 지정 인증 asp.net MVC
- 28. ASP.NET 멤버십 테이블 사용자 지정
- 29. asp.net 사용자 지정 맞춤법 검사기
- 30. asp.net 사용자 지정 처리기 예외?
"DeleteExpiredSessions()"이름이 현재 컨텍스트에 없습니다. – tincopper2
이것은 데이터베이스에서 정리 절차를 호출하는 https://github.com/micahlmartin/SQLiteSessionStateStore (DeleteExpiredSessions()로 이름을 바꾸고 public으로 변경)에서 언급 한 방법입니다. msdn에서도 세션 정리 절차의 온라인 예제가 몇 가지 있습니다. 하나를 만드는 데 도움이 필요하거나 다른 질문에서 더 잘 처리되는 데이터 계층을 구현하는 데 도움이 필요한 경우 관련 질문이있는 경우 알려 주시면 도와 드리겠습니다. –
데이터베이스를 정리하는 메소드를 호출하지 않습니다. 이것은 공급자의 인스턴스를 참조하지 않고 정적 라이브러리 만 참조합니다. – tincopper2