2011-09-27 3 views
6

WebGet 속성을 통해 WCF 서비스를 사용하고 있습니다.WebHttpBinding에서 WCF 서비스의 액세스 세션

내가 WCF 서비스에서 세션에 액세스하려고하지만, HttpContext.Current있어 내가 AspNetCompatibilityRequirements을 추가하고 Web.config의 편집하지만 난 여전히 세션에 액세스 할 수 없습니다

null입니다.

WebGet과 Session을 함께 사용할 수 있습니까?

감사합니다.

답변

5

예, 가능합니다. 당신이 web.config 편집하는 경우 :

<system.serviceModel> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 
</system.serviceModel> 

을하고 AspNetCompatiblityRequirements을 추가 HttpContext.Current는 사용할 수 있습니다.

다시 한 번 확인하십시오. 잘못된 장소 (클래스 대신 인터페이스?)에 속성을 넣었습니까?

+2

속성이 있지만 세션이 없습니다. WebHttpBinding은 세션과 호환됩니까? –

4

세션이있는 RESTful 서비스? 폴 Prescod에서 Can you help me understand this? "Common REST Mistakes: Sessions are irrelevant"

http://javadialog.blogspot.co.uk/2009/06/common-rest-mistakes.html (지점 6)

http://www.peej.co.uk/articles/no-sessions.html

인용구 : :

우수한 여기에 설명을 참조하십시오

세션은 무관하다.

클라이언트가 "로그인"또는 "연결 시작"할 필요가 없습니다. 모든 메시지에 대해 HTTP 인증이 자동으로 수행됩니다 ( ). 클라이언트 응용 프로그램은 서비스가 아닌 리소스의 소비자입니다. 따라서 로그인 할 내용이 없습니다! REST 웹 서비스에서 항공편을 예약한다고 가정 해 보겠습니다. 서비스에 대한 새로운 "세션"연결을 만들지 마십시오. 오히려 에게 "여정 작성자 개체"를 요청하여 새 여정을 작성하십시오. 공백을 채우기 시작할 수 있지만 일부 다른 공백을 채우기 위해 완전히 다른 구성 요소를 웹의 다른 곳으로 가져올 수 있습니다. 세션이 없으므로 클라이언트간에 세션 상태를 마이그레이션하는 데 문제가 없습니다. 또한 서버에 "세션 선호도"문제가 없습니다 (계속로드 균형 조정 문제가 있지만).