Azure에서 WCF와 함께 작동하기 위해 SSL을 설정하는 단계는 무엇입니까?
문제
Azure에서 WCF와 함께 작동하기 위해 SSL을 설정하는 데 취한 단계를 게시하십시오.
나는 내가있다 유효한 인증서 업로드 성공적으로 (Cspack 사용)) 그리고 나머지 사이트와 함께 일했지만 추가 한 후 이전에 작업 한 WCF 서비스는 작동을 중단했습니다. (내가 얻는 모든 것은 Silverlight로 돌아가는 404 오류입니다. 그다지 도움이되지 않습니다. 문제를 진단하는 데 도움이 될 수있는 더 나은 로깅을 생각해내는 사람에게 투표권을 얻었습니다!)
이 구성에 대한 많은 변형을 시도했습니다.
<system.serviceModel>
<!--start added for SSL-->
<bindings>
<basicHttpBinding>
<binding name="SecureBasicHttpBinding">
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<!--end added for SSL-->
<behaviors>
<!--start added for SSL-->
<endpointBehaviors>
<behavior name="DisableServiceCertificateValidation">
<clientCredentials>
<serviceCertificate>
<authentication certificateValidationMode="None"
revocationMode="NoCheck" />
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
<!--start added for SSL-->
<serviceBehaviors>
<behavior name="Silverheat.Cloud_WebRole.API.DataServiceBehavior">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
<!-- certificate checking removed -->
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<services>
<service behaviorConfiguration="Silverheat.Cloud_WebRole.API.DataServiceBehavior"
name="Silverheat.Cloud_WebRole.API.DataService">
<!--<endpoint address="" binding="basicHttpBinding" contract="Silverheat.Cloud_WebRole.API.DataService" />-->
<endpoint bindingConfiguration="SecureBasicHttpBinding"
behaviorConfiguration="DisableServiceCertificateValidation"
address="" binding="basicHttpBinding"
contract="Silverheat.Cloud_WebRole.API.DataService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
불행히도, 이것을 디버깅하고 더 많은 정보를 얻는다 바인딩 태그에는 문제가 있습니다 디버그 (하지만 살아 있지 않음).
도움과 관심에 감사드립니다!
해결책
우와! 살아있어! 작동 !!
여전히 디버그에서 작동하지 않습니다 (보안 예외),하지만 다음 릴리스까지 그와 함께 살 것입니다.
다음은 작동 한 구성입니다.
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="SecureBasicHttpBinding">
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="Silverheat.Cloud_WebRole.API.DataServiceBehavior">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<services>
<service behaviorConfiguration="Silverheat.Cloud_WebRole.API.DataServiceBehavior"
name="Silverheat.Cloud_WebRole.API.DataService">
<endpoint bindingConfiguration="SecureBasicHttpBinding"
address="" binding="basicHttpBinding"
contract="Silverheat.Cloud_WebRole.API.DataService" />
<endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
(나는 이미 구성된 후 메타 데이터가 필요한 이유를 완전히 이해하지 못하지만 "mexhttpsbinding"이라고 생각합니다.
나는 여전히 WCF에 어떤 종류의 로깅을 가능하게하는 방법을 알고 싶지만,이 훌륭한 사이트를 조금 더 찌르며 답을 찾을 것이라고 확신합니다.
제휴하지 않습니다 StackOverflow