2010-04-16 3 views
6

현재 basicHttpBindings 및 SSL을 사용하도록 설정된 WCF 서비스가 있습니다. 하지만 지금은 WCF 세션 (안 ASP 세션)을 활성화해야합니다 그래서 난 wsHttpBidnings에 대한 서비스를 이동하지만 세션은 내가 전송 전용 보안을 사용하여 wsHttpBidning을 사용하여 WCF 세션을 활성화하는 방법

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)] 

을 설정 한

을 사용할 수 없습니다하지만 난에

SessionMode=SessionMode.Required 

을 설정할 때 서비스 계약이란

계약서에는 세션이 필요하지만 바인딩은 'WSHttpBindin g '가 지원하지 않거나 이 을 지원하도록 제대로 구성되지 않았습니다.

다음은 당신이있는 wsHttpBinding에 "세션"을 원하는 경우

<wsHttpBinding> 
    <binding name="wsHttpBinding"> 
     <readerQuotas maxStringContentLength="10240" /> 
     <reliableSession enabled="false" /> 
     <security mode="Transport"> 
     <transport clientCredentialType="None"> 
      <extendedProtectionPolicy policyEnforcement="Never" /> 
     </transport> 
     </security> 
    </binding> 
    </wsHttpBinding> 

답변

7

좀 도와주십시오 WsHttpBinding과의 정의, 당신은 신뢰할 수있는 메시징, 또는 보안 세션 중 하나를 사용해야합니다.

wsHttpBinding에서 세션을 사용하도록 설정하려면 신뢰할 수있는 메시징이 필요하며 신뢰할 수있는 세션 설정 (<reliableSession/>과 같은 태그)을 사용 설정해야합니다. 그러면 새 구성이 다음과 같이 표시됩니다.

<wsHttpBinding> 
    <binding name="wsHttpBinding"> 
     <readerQuotas maxStringContentLength="10240" /> 
     <reliableSession enabled="true" /> 
     <security mode="Transport"> 
     <transport clientCredentialType="None"> 
      <extendedProtectionPolicy policyEnforcement="Never" /> 
     </transport> 
     </security> 
    </binding> 
    </wsHttpBinding> 
+0

나는 이것을 시험해 보았지만, "http scheme bla bla로 발견 된베이스 주소가 없으며 reliableSessions는 https scheme bla bla와 함께 지원되지 않는다"라는 예외를 던졌습니다. –

+0

다른 시간을 시도한 후에 당신을 보냅니다. 감사합니다 –

+0

세션을 사용하고 싶지만 고객이 AJAX 이래로 제안 했으므로 어떻게 할 수 있습니까? AJAX는 보안 컨텍스트를 지원하지 않기 때문입니다. –

-1

아니라 다음 <security mode="None">을 "대신 https 고정됩니다 HTTP 오류로 예상했다.

-1

응용 프로그램에 대한 귀하의 IIS 호스트와 마우스 오른쪽 클릭으로 이동 MangeApplication 및 고급 설정을 선택하고 사용할 수있는 프로토콜에 추가" wsHttpBinding ".

관련 문제