2014-09-23 2 views
1

저는 아주 기본적인 MVC4 웹 사이트를 가지고 있습니다. 나는과 같이 SQL 서버 세션을 사용하고 있습니다 : 사용자가 로그인 할 때MVC 세션 SQLServer가 업데이트를 허용하지 않습니다.

<sessionState 
     mode="SQLServer" regenerateExpiredSessionId="true" timeout="1440" 
     sqlConnectionString="Password=pass; Persist Security Info=True; User ID=user; Data Source=server;" 
     /> 

, 그래서 같은 세션에 항목을 추가 : 내가하려고 할 때 잘 작동

Session["test"] = 3; 

, 문제가 발생 즉, 세션에 새 항목을 추가하거나 기존 값을 업데이트 :

Session["test"] = 4; 
Session["faux"] = 8; 

를 내가 디버깅 해요 때, 초기 "test" 값이 업데이트 결코 극복하고 "faux" 값은 추가되지 않습니다. 오류가 발생하지 않으며 업데이트/코드 추가 단계를 거치면 세션이 업데이트 된 것처럼 보이지만 다른 함수로 들어가서 세션을 쿼리하려고하면 원래 값만 세션에 존재합니다.

다음 안내에 따라 : MSDN, 그리고 테이블이 내 서버에 표시됩니다.

나는 손실에 처해있다. 세션을 만들 수는 있지만 그 세션에서 값을 업데이트하거나 추가하지 않는 이유는 무엇입니까?

+0

내 로컬에서 문제를 재현 할 수 없으며 아래의 답변이 작동하지 않으므로 답변을 삭제합니다. 이것은 아주 이상합니다. ASPState DB 설정에 문제가있을 수 있습니다. – Hatjhie

답변

1

문제는 한 컨트롤러에서 제대로 작동하는 컨트롤러 인 [SessionState(SessionStateBehavior.Required)]과 다른 컨트롤러 (제대로 작동하지 않는 컨트롤러)에서 내가 [SessionState(SessionStateBehavior.ReadOnly)]을 설정했기 때문에 내 세션 항목이 업데이트되지 않았습니다. 세션 상태가 InProc 일 때 이것은 문제가되지 않았습니다.

다른 사람들도 내가 한 것과 같은 잘못된 실수를 저지르고 있습니다.

관련 문제