Azure에서 WCF와 함께 작동하기 위해 SSL을 설정하는 단계는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/604573

  •  03-07-2019
  •  | 
  •  

문제

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에 어떤 종류의 로깅을 가능하게하는 방법을 알고 싶지만,이 훌륭한 사이트를 조금 더 찌르며 답을 찾을 것이라고 확신합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top