2011-08-11 3 views
2

세션과 SSL을 동시에 사용하여 모든 인증서를 설정하고 모든 것이 WCF 서비스에서 올바르게 설정되었는지 확인했습니다. 나는 모든 것에 대해 노력해 왔지만 이것이 작동하지 않는 것 같습니다. 그것은 나를 InvalidoperationException WsHttpBinding 보안 세션을 만들 수 없습니다 그리고 내가 TransportSecurity 대신 Https를 사용하고 싶습니다 TransportSecurity.But 대신 MessageSecurity를 ​​사용해야한다는 것을 말합니다 .Http를 사용하고 싶습니다. 누구든지 나를 도울 수 있을까? 미리 감사드립니다. WsHttpBinding과에 대한WSHttpBinding 및 Https 문제

의 App.config :

<wsHttpBinding> 
    <binding name="WSHttpBinding"> 
    <reliableSession enabled="True" /> 
    <security mode="Transport"> 
     <transport clientCredentialType="None"/> 
    </security> 
    </binding> 
    </wsHttpBinding> 

편집 : 나는 ServiceHost.Open()를 호출하려고 그래서 로깅 훨씬 좋은 일을하지 않습니다,하지만 당신을 감사 할 때 InvalidOperationException이 발생합니다 것을 언급하는 것을 잊었다 그것을 언급.

답변

3

나는 그것을 시도하지만 MSDN says하지 않았다 :

는 당신이이 신뢰할 수있는 세션과 HTTPS 전송을 사용하는 사용자 지정 바인딩을 만들어야합니다, HTTPS를 통해 신뢰할 수있는 세션을 사용합니다.

문서에 설명 된 사용자 지정 바인딩을 사용해보십시오.

편집 :

WsHttpBinding 작동하지 않는 이유는 리플렉터로 확인

.

if (isReliableSession && !this.IsSecureConversationEnabled()) 
{ 
    throw ... 
} 

그것은 아마 WsHttpBinding가 안전하지 않은 채널을 통해 또는 메시지 보안 및 보안 대화로 고정 채널을 통해 신뢰할 수있는 세션을 사용 할 수 있음을 의미합니다 : 보안을 초기화 할 때 WsHttpBinding이 코드가 포함되어 있습니다.

0

WCF logging을 활성화하고 SvcTraceViewer을 사용하여 결과 로그 파일을 살펴 보시기 바랍니다. 이것은 진행되고있는 것에 대해 더 많은 세부 사항을 제공해야하며, 더 어려운 WCF 문제를 추적하는 데 도움이됩니다.