2011-11-09 20 views
6

Próbuję użyć WCF 4, aby skonfigurować usługę WWW RESTful. Chciałbym, aby usługa była dostępna zarówno za pomocą HTTP, jak i HTTPS. Domyślnie usługa jest tworzony z poniższej konfiguracji, która pracuje dla HTTP, ale nie https:Jak skonfigurować usługi RESTful HTTP i HTTPS WCF 4?

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

mogę następnie włączyć HTTPS dla usługi poprzez zmianę konfiguracji nieznacznie do tego:

<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 Pytanie brzmi, w jaki sposób uzyskać usługę działającą z obiema?

Odpowiedz

6

Powinieneś spróbować utworzyć dwa oddzielne punkty końcowe. Na przykład:

<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

Domyślam się, że powinien to być ** https **: //ww.xyz.com/MyService.svc dla punktu końcowego zdefiniowanego jako pierwszy w twoim przykładzie. –

Powiązane problemy