2011-11-09 11 views
6

私はRESTful WebサービスをセットアップするためにWCF 4を使用しようとしています。 HTTPとHTTPSの両方を使ってサービスにアクセスできるようにしたいと思います。デフォルトでは、サービスは、HTTPではなくHTTPSの作品次のような構成で作成されます。どのようにHTTPとHTTPS WCF 4 RESTfulサービスを設定しますか?

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

私は、このわずかに設定を変更することにより、サービスのHTTPSをオンにすることができます

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

マイ質問はどのように私は両方のサービスを働かせますか?

答えて

6

2つの別々のエンドポイントを作成するようにしてください。たとえば、

<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

私はあなたの例で最初に定義されたエンドポイントの** https **://ww.xyz.com/MyService.svcと思うでしょう。 –

関連する問題