2009-03-03 14 views
7

Por favor, publique los pasos que ha seguido para configurar SSL para trabajar con WCF en Azure.¿Cuáles son los pasos para configurar SSL para que funcione con WCF en Azure?

Tengo mi valid certificate uploaded con éxito (using cspack) y trabajo con el resto del sitio, pero después de agregarlo, mi servicio WCF que ya funcionaba dejó de funcionar. (Todo lo que obtengo es un error 404 de vuelta a Silverlight, que no es muy útil. Votos ascendentes a quien se le ocurra un mejor registro que yo también podría estar haciendo para ayudar a diagnosticar el problema!)

He intentado muchos variaciones de esta configuración:

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

por desgracia, la depuración de esto y conseguir más información es muy difícil porque no puedo pasar por y depurar con cualquier configuración de forma remota como me gustaría usar en el servidor en vivo debido a que el bindings tag has problems de depuración (pero no en vivo).

¡Gracias por su ayuda e interés!

Respuesta

6

¡Guau! ¡Esta vivo! ¡¡Esta funcionando!!

Todavía no funciona en la depuración (security exception), pero voy a vivir con eso hasta la próxima versión.

Aquí está la configuración que trabajaron:

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

(creo que fue "mexHttpsBinding" que hizo que finalmente funciona, aunque yo no entiendo del todo por qué necesita los metadatos después de su ya configurada, de nuevo a los libros, supongo)

Todavía me gustaría saber cómo habilitar algún tipo de registro para WCF, pero voy a hurgar en este gran sitio un poco más y estoy seguro de que voy a encontrar una respuesta.

Cuestiones relacionadas