2010-01-25 13 views
5

Nous souhaitons exposer nos services WCF sur REST et également sur TCP en les sécurisant tous les deux avec SSL. Nous avons un SSL valide téléchargé sur Azure et la configuration de mappage appropriée, de sorte que le passage au https://service.ourdomain.com fonctionne comme il se doit.Configuration des liaisons webHTTP et NetHTTP via SSL dans WCF sur Azure

J'ai configuré deux liaisons de point de terminaison, webHttpBinding pour les services REST et une customBinding de type NetHttpBinding pour le TCP.

Je pense que je travaille avec SSL webHTTP mais lorsque je tente et activer httpsTransport dans la mesure obligatoire pour NetHTTP j'obtiens l'erreur

« Impossible d'ajouter l'élément de transport « httpTransport ». Un autre élément de transport existe déjà dans la liaison Il ne peut y avoir qu'un seul élément de transport pour chaque liaison "

Toute la config a été faite dans le WebRole web.config J'ai regardé les autres questions de la WCF ici soumises par les gens de Silverlight et ils ont aidé avec le webHTTP sur SSL mais les trucs binaires m'ont troublé.

Est-il possible d'exécuter les services REST et TCP WCF à partir du même domaine SSL, si oui, j'aimerais le savoir?

<system.serviceModel> 
<bindings> 
    <webHttpBinding> 
    <binding name="SecureWebHttpBinding"> 
     <security mode="Transport"> 
     <transport clientCredentialType="None" /> 
     </security> 
    </binding> 
    </webHttpBinding> 

    <customBinding> 
    <binding name="NetHttpBinding"> 
     <binaryMessageEncoding /> 
     <!--<httpsTransport authenticationScheme="None" />--> 
    </binding> 
    </customBinding> 
</bindings> 

<behaviors> 
    <endpointBehaviors> 
    <behavior name="webBehavior"> 
     <webHttp /> 
    </behavior> 
    </endpointBehaviors> 

    <serviceBehaviors> 
    <behavior name="RestService"> 
     <serviceMetadata httpsGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="true" /> 
    </behavior> 

    <behavior name="BinaryService"> 
     <serviceMetadata httpsGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="true" /> 
    </behavior> 

    </serviceBehaviors> 
</behaviors> 

<services> 
    <service behaviorConfiguration="RestService" name="WebService.Rest"> 
    <endpoint address="Achievements" 
       binding="webHttpBinding" 
       bindingConfiguration="SecureWebHttpBinding" 
       behaviorConfiguration="webBehavior" 
       contract="WebService.JSON.IAchievementJSON"/> 
</service> 

    <service behaviorConfiguration="BinaryService" name="WebService.Binary"> 
    <endpoint address="Achievements" 
       binding="customBinding" 
       bindingConfiguration="NetHttpBinding" 
       contract="WebService.BinaryInterfaces.IAchievementBinary"/> 
    </service> 
</services> 
</system.serviceModel> 

Répondre

1

Votre adresse de point de terminaison pour les deux liaisons est la même. Essayez de changer l'un d'entre eux à Achievements/bin ou quelque chose. Cela devrait régler votre problème.