Quais são os passos para SSL configurado para trabalhar com o WCF no Azure?

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

  •  03-07-2019
  •  | 
  •  

Pergunta

Por favor, postar os passos que tomou para SSL configurado para trabalhar com o WCF no Azure.

Eu tenho o meu certificado válido carregado com sucesso ( usando cspack ) e trabalhar com o resto do site, mas após adicioná-lo, o meu serviço WCF anteriormente trabalhando parou de funcionar. (Tudo que eu vejo é uma volta de 404 erro para o Silverlight, o que não é muito útil. Até vota a quem surge com algum melhor login eu poderia estar fazendo muito para ajudar a diagnosticar o problema também!)

Eu tentei muitas variações sobre esta configuração:

<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>

Infelizmente, a depuração este e obter mais informações é realmente difícil, porque não posso percorrer e depuração com qualquer configuração remotamente como eu usaria no servidor ao vivo porque o ligações tag tem problemas na depuração (mas não ao vivo).

Obrigado por sua ajuda e interesse!

Foi útil?

Solução

Wow! Está vivo! Seu trabalho !!

Ainda não funciona na depuração ( segurança exceção), mas eu vou viver com isso até o próximo lançamento.

Aqui está a configuração que trabalhou:

  <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>

(acho que era "mexHttpsBinding" que tornou finalmente trabalho, embora eu não entendo totalmente porque ele precisa de dados de meta após a sua já configurado, de volta para os livros que eu acho)

Eu ainda gostaria de saber como ativar algum tipo de registro para WCF, mas eu vou picar em torno deste grande local um pouco mais e eu tenho certeza que vou encontrar uma resposta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top