SQL 타겟이 Azure SQL이므로 이전 ASP.NET 멤버 (MVC3에서)를 새 ASP.NET 범용 공급자로 마이그레이션했습니다. 그 이동 중 SQL 스크립트는 고통 스러웠습니다! 어쨌든 세션 상태를 SQL로 설정합니다 (예 : web.confg의 <sessionState mode="Custom"
). 우리가 다시 시작할 때ASP.NET 유니버설 공급자 : 세션 상태가 삭제되지 않습니까?
지금 사이트가 갑자기 다운되면, (예를 들어 디버깅 => 정지) 우리가 오류를 얻을 : 예상대로 Violation of PRIMARY KEY constraint 'PK__Sessions__C9F492908756A0EE'. Cannot insert duplicate key in object 'dbo.Sessions'. The duplicate key value is (<randomstring>). The statement has been terminated.
, 나는 세션이 실제로 DB에서 동일한 항목이 있는가 확인 기본 키가있는 [db].[SessionId]
테이블 내부.
질문 : 누가 해당 DB 항목을 삭제해야합니까? 로그 아웃이 제대로 시작되면 코드로 지워 져야한다는 것을 이해합니다. 그러나 이미 존재하는 경우 자동 오류 처리 (멤버십 자체에서)가 없어야합니까? 그렇다면 왜 그것이 실행되지 않습니까? 아니요, 어떻게 추가 할 수 있습니까?
감사합니다. 데이터베이스가 Azure SQL에있을 때 해당 작업을 활성화하는 방법을 알고 계십니까? 또한, 새로운 유니버설 공급자는 (이전과 달리) 저장 프로 시저를 추가하지 않는다고 생각합니다. 그래서 이것은 훨씬 더 당혹 스럽네하는 그런 직업을 가질 수있는 능력을 만듭니다. – DeepSpace101
나는 대답을 업데이트했습니다. Azure를 사용하는 경우 캐시 방법에 ASP.NET 세션 상태 저장 http://www.windowsazure.com/en-us/develop/net/how-to-guides/cache/# 상점 세션 – Win