2010-01-25 15 views
5

WCF hizmetlerimizi REST üzerinden ve ayrıca TCP üzerinden hem SSL ile güvenliğini sağlamak istiyoruz. Azure'a yüklenen geçerli bir SSL ve düzgün eşleme kurulumuna sahibiz. Böylece, https://service.ourdomain.com'a gitmek gerektiği gibi çalışıyor.Hem WebHTTP hem de NetHTTP bağlantılarını Azure üzerinde WCF'de SSL üzerinden yapılandırma

İki uç nokta bağlama, REST hizmetleri için webHttpBinding ve TCP için NetHttpBinding türünde bir özel Ciltleme ayarlıyorum.

ben webHTTP ile çalışan SSL var ama denemek ve NetHTTP için özel bağlama içinde httpsTransport etkinleştirmek zaman

“taşıma elemanı eklenemez 'HttpTransport' hatası alıyorum. Başka bir aktarım elemanı zaten ciltlemede mevcuttur. Her bir ciltleme için yalnızca bir aktarım öğesi olabilir. ”

Tüm yapılandırma WebRole web.config 'da yapıldı. Burada gönderilen diğer WCF sorularına bir göz attım Silverlight kullanıcıları tarafından ve SSL üzerinden webHTTP ile yardımcı oldular ama ikili şeyler beni güldürdü.

Bilmek istersek, aynı SSL etki alanından hem REST hem de TCP WCF hizmetlerini çalıştırmak mümkün mü?

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

cevap

1

Her iki bağlama için son nokta adresiniz aynıdır. Bunlardan birini Achievements/bin veya benzeri bir şeyle değiştirmeyi deneyin. Bu, sorununuzu çözmelidir.

İlgili konular