3

IEventService私は現在、HTTP経由でのみ公開される ServiceContract によって定義された Http Rest WCF4 サービスを持っています。

私はいくつかの OperationContracts を HTTPS 経由でのみ動作するようにする任務を負っています。IEventServiceHTTPS

自己署名証明書を使用して IIS7.5 を使用して開発ボックスでこれをホストすると、IEventServiceHTTPS期待どおり、HTTP ではなく HTTPS で正常に呼び出されるメソッドの一部です。

ただし、IEventService現在公開されている HTTP メソッドは機能しません。

HTTP メソッドにアクセスしようとすると、次のようになります。

HTTP Error 403.4 - Forbidden
The page you are trying to access is secured with Secure Sockets Layer (SSL).

私の変更を加えたweb.config:

<system.serviceModel>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true">
      <serviceActivations>
        <add service="Api.EventService" relativeAddress="EventService.svc" factory="Api.UnityServiceHostFactory"/>
      </serviceActivations>
    </serviceHostingEnvironment>
    <behaviors>
      <serviceBehaviors>
        <behavior name="Api.EventServiceBehavior">
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="WebBehavior">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <services>
      <service behaviorConfiguration="Api.EventServiceBehavior" name="Api.EventService">
        <endpoint address="" binding="webHttpBinding" behaviorConfiguration="WebBehavior" bindingConfiguration="webBindingHTTP" contract="Api.IEventService"/>
        **<endpoint address="" binding="webHttpBinding" behaviorConfiguration="WebBehavior" bindingConfiguration="webBindingHTTPS" contract="Api.IEventServiceHTTPS"/>**
      </service>
    </services>
    <bindings>
      <webHttpBinding>
        <binding name="webBindingHTTP">
          <security mode="None"></security>
        </binding>
        **<binding name="webBindingHTTPS">
          <security mode="Transport">
          </security>
        </binding>**
      </webHttpBinding>
    </bindings>
  </system.serviceModel>

どんな助けでも大歓迎です、ありがとう。

4

1 に答える 1

1

このエラーは、IIS vdir [SSL 設定]-> SSL が必要-> true が原因で発生していると思います。http と https の両方のエンドポイントに同じサービスでアクセスできるようにする場合は、この設定をオフにします。これにより、vdir で安全でない http を実行できなくなります。

于 2013-02-26T15:48:25.480 に答える