1

我有一个托管在 IIS6 中的 WCF 应用程序(在开发环境中是 7 个),带有一个 wsHttp (SOAP) 和两个 webHttp (REST) 绑定。

我想在发布到生产站点时保护服务并禁用元数据和 webHttp 帮助页面并为绑定启用 SSL。同时我想禁用HTTP。我知道 IIS 中“需要安全通道”的选项,但我想知道是否可以在 web.config 中实现相同的功能?

我的印象是

<security mode="Transport">

会“禁用”http访问(即需要https),但在我的情况下它没有。

她是 web.config 的 ServiceModel 部分:

<system.serviceModel>
<bindings>
  <wsHttpBinding>
    <binding name="SoapTransportSecurityBinding">
      <security mode="Transport">
        <transport clientCredentialType="None"/>
        <message establishSecurityContext="false"/>
      </security>
    </binding>
  </wsHttpBinding>
  <webHttpBinding>
    <binding name="RestTransportSecurityBinding">
      <security mode="Transport">
        <transport clientCredentialType="None"/>
      </security>
    </binding>
  </webHttpBinding>
</bindings>
<services>
  <service name="CustomerWcfService" behaviorConfiguration="Web.ServiceBehavior">
    <endpoint address="" binding="wsHttpBinding" bindingConfiguration="SoapTransportSecurityBinding" contract="ICustomerWcfService">
      <identity>
        <dns value="ws.somecompany.com"/>
      </identity>
    </endpoint>
  </service>
  <service name="SentShipmentsWcfRestService" behaviorConfiguration="webHttpServiceBehavior">
    <endpoint address="" binding="webHttpBinding" bindingConfiguration="RestTransportSecurityBinding" contract="ISentShipmentsWcfRestService"
      behaviorConfiguration="RestEndpointBehavior"/>
  </service>
  <service name="InsuranceInfoWcfRestService" behaviorConfiguration="webHttpServiceBehavior">
    <endpoint address="" binding="webHttpBinding" bindingConfiguration="RestTransportSecurityBinding" contract="IInsuranceInfoWcfRestService"
      behaviorConfiguration="RestEndpointBehavior"/>
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="Web.ServiceBehavior">
      <serviceDebug includeExceptionDetailInFaults="false"/>
    </behavior>
    <behavior name="webHttpServiceBehavior">
      <serviceDebug includeExceptionDetailInFaults="false"/>
    </behavior>
  </serviceBehaviors>
  <endpointBehaviors>
    <behavior name="RestEndpointBehavior">
      <webHttp helpEnabled="false"/>
    </behavior>
  </endpointBehaviors>
</behaviors>

4

1 回答 1

0

看起来它无法在 web.config 中实现。但是在绑定设置中你可以设置

      <security mode="Transport">

在这种情况下,如果不需要 SSL,端点将无效。

于 2012-04-19T16:04:41.330 回答