2011-11-09 35 views
6

Tôi đang cố gắng sử dụng WCF 4 để thiết lập dịch vụ web RESTful. Tôi muốn dịch vụ có thể truy cập được bằng cả HTTP và HTTPS. Theo mặc định dịch vụ được tạo ra với các cấu hình sau đây mà làm việc cho http nhưng không https:Làm cách nào để thiết lập các dịch vụ RESTful HTTP và HTTPS WCF 4?

<system.serviceModel> 
<behaviors> 
    <endpointBehaviors> 
    <behavior> 
     <webHttp helpEnabled="true" /> 
    </behavior> 
    </endpointBehaviors> 
</behaviors> 
<protocolMapping> 
    <add scheme="http" binding="webHttpBinding" /> 
</protocolMapping> 
</system.serviceModel> 

tôi có thể sau đó bật HTTPS cho dịch vụ bằng cách thay đổi cấu hình nhẹ như thế này:

<system.serviceModel> 
<behaviors> 
    <endpointBehaviors> 
    <behavior> 
     <webHttp helpEnabled="true" /> 
    </behavior> 
    </endpointBehaviors> 
</behaviors> 
<bindings> 
    <webHttpBinding > 
    <binding name="SecureWebBinding" > 
     <security mode="Transport"></security> 
    </binding> 
    </webHttpBinding> 
</bindings> 
<protocolMapping> 
    <add scheme="http" binding="webHttpBinding" bindingConfiguration="SecureWebBinding"/> 
</protocolMapping> 
</system.serviceModel> 

My câu hỏi là làm thế nào để tôi nhận được dịch vụ làm việc với cả hai?

Trả lời

6

Bạn nên cố gắng tạo hai điểm kết thúc riêng biệt. Ví dụ:

<system.serviceModel> 
    <services> 
     <service name="MyNameSpace.MyService"> 
      <endpoint address="https://www.example.com/MyService.svc" 
        binding="wsHttpBinding" bindingConfiguration="SecureWebBinding" 
        contract="MyNameSpace.IMyContract" /> 
      <endpoint address="http://www.example.com/MyService.svc" 
        binding="basicHttpBinding" 
        contract="MyNameSpace.IMyContract" /> 
     </service> 

     <bindings> 
      <webHttpBinding > 
       <binding name="SecureWebBinding" > 
       <security mode="Transport"></security> 
       </binding> 
      </webHttpBinding> 
     </bindings> 

    </services> 
</system.serviceModel> 
+1

Tôi đoán nó phải là ** https **: //ww.xyz.com/MyService.svc cho điểm cuối được xác định đầu tiên trong ví dụ của bạn. –

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