2010-01-25 26 views
5

Chúng tôi muốn hiển thị các dịch vụ WCF của chúng tôi qua REST và cũng qua TCP bảo mật cả hai với SSL. Chúng tôi có một SSL hợp lệ được tải lên Azure và thiết lập ánh xạ phù hợp để việc https://service.ourdomain.com hoạt động như mong muốn.Cấu hình cả liên kết webHTTP và NetHTTP qua SSL trong WCF trên Azure

Tôi đã thiết lập hai liên kết điểm cuối, webHttpBinding cho các dịch vụ REST và tùy chỉnh liên kết kiểu NetHttpBinding cho TCP.

Tôi nghĩ rằng tôi có SSL làm việc với webHTTP nhưng khi tôi cố gắng và cho phép httpsTransport trong tùy chỉnh bắt buộc đối với NetHTTP tôi nhận được lỗi

“Không thể thêm các yếu tố vận chuyển 'httpTransport'. Một yếu tố vận tải khác đã tồn tại trong liên kết Chỉ có thể có một phần tử vận ​​chuyển cho mỗi ràng buộc ”

Tất cả các cấu hình đã được thực hiện trong WebRole web.config Tôi đã xem xét các câu hỏi WCF khác trên đây được gửi bởi những người Silverlight và họ đã giúp với webHTTP qua SSL nhưng các công cụ nhị phân có tôi stumped.

Có thể chạy cả hai dịch vụ WCF REST và TCP từ cùng một miền SSL, nếu vậy tôi rất muốn biết?

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

Trả lời

1

Địa chỉ điểm cuối của bạn cho cả hai liên kết đều giống nhau. Thử thay đổi một trong số chúng thành Thành tích/thùng hoặc thứ gì đó. Điều này sẽ giải quyết vấn đề của bạn.

Các vấn đề liên quan