【问题标题】:Use wshttpBinding with SSL and wsHttpBinding without SSL in single service在单个服务中使用带 SSL 的 wshttpBinding 和不带 SSL 的 wsHttpBinding
【发布时间】:2010-09-15 05:43:23
【问题描述】:

我想在单个服务中使用 wshttpbinding(带 SSL 和不带 SSL),但它不起作用,任何人都实现了它。那么请指导我如何实现这一目标?

<system.serviceModel>
<behaviors>
  <serviceBehaviors>
    <behavior name="CommonBehaviour">
      <dataContractSerializer maxItemsInObjectGraph="2147483647" />
      <serviceCredentials>
        <serviceCertificate findValue="AzilenTechnology" x509FindType="FindBySubjectName" />
      </serviceCredentials>
      <serviceDebug includeExceptionDetailInFaults="false" />
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<bindings>
  <basicHttpBinding>
    <binding name="basicHttpBindingConfig" closeTimeout="00:10:00"
      openTimeout="00:10:00" sendTimeout="00:10:00" maxBufferSize="2147483647"
      maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
      messageEncoding="Mtom">
      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
        maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
    </binding>
  </basicHttpBinding>
  <wsHttpBinding>
    <binding name="wsHttpBindingConfig" closeTimeout="00:10:00" openTimeout="00:10:00"
      sendTimeout="00:10:00" bypassProxyOnLocal="true" maxBufferPoolSize="2147483647"
      maxReceivedMessageSize="2147483647" messageEncoding="Mtom">
      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
        maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
      <security mode="None" />
    </binding>
  </wsHttpBinding>
</bindings>
<services>
  <service behaviorConfiguration="CommonBehaviour" name="wcfAllInOne.wcfFileIO">
    <endpoint binding="mexHttpBinding" bindingConfiguration="" contract="IMetadataExchange" />
    <endpoint address="http://localhost:82/WCFAllInOne/wcfFileIO.svc/basicHttpEndPoint" binding="basicHttpBinding"
      bindingConfiguration="basicHttpBindingConfig" name="BasicHttp"
      contract="wcfAllInOne.IwcfFileIO" />
    <endpoint address="http://localhost:82/WCFAllInOne/wcfFileIO.svc/wsHttpBindingEndPoint" binding="wsHttpBinding"
      bindingConfiguration="wsHttpBindingConfig" name="wsHttp" contract="wcfAllInOne.IwcfFileIO" />
    <endpoint address="https://localhost:444/WCFAllInOne/wcfFileIO.svc/wsHttpSslEndPoint" binding="wsHttpBinding"
      bindingConfiguration="wsHttpBindingConfig" name="wsHttpSsl"
      contract="wcfAllInOne.IwcfFileIO" />
    <endpoint binding="mexHttpsBinding" bindingConfiguration="" contract="IMetadataExchange" />
         </service>
</services>

【问题讨论】:

  • 告诉我们哪些配置不适合您。

标签: wcf wcf-binding


【解决方案1】:

我找到了解决办法,为什么我上次的配置不起作用,

我的第一个错误是我对带有 ssl 的 wsHttpBinding 和没有 SSL 的 wsHttpBinding 使用了相同的配置

在我的配置文件中,我刚刚为两个端点创建了一个“wsHttpBindingConfig”(一个具有 http 地址,另一个具有 https 地址),

现在我使用两种不同的配置来解决这个问题。

<system.serviceModel>
<behaviors>
  <serviceBehaviors>
    <behavior name="CommonBehaviour">
      <dataContractSerializer maxItemsInObjectGraph="2147483647" />
      <serviceCredentials>
        <serviceCertificate findValue="AzilenTechnologies" x509FindType="FindBySubjectName" />
      </serviceCredentials>
      <serviceDebug includeExceptionDetailInFaults="false" />
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<bindings>
  <basicHttpBinding>
    <binding name="basicHttpBindingConfig" closeTimeout="00:10:00"
      openTimeout="00:10:00" sendTimeout="00:10:00" maxBufferSize="2147483647"
      maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
      messageEncoding="Mtom">
      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
        maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
      <security>
        <transport>
          <extendedProtectionPolicy policyEnforcement="Never" />
        </transport>
      </security>
    </binding>
  </basicHttpBinding>
  <wsHttpBinding>
    <binding name="wsHttpsBindingConfig" closeTimeout="00:10:00"
      openTimeout="00:10:00" sendTimeout="00:10:00" bypassProxyOnLocal="true"
      maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
      messageEncoding="Mtom">
      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
        maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
      <security mode="Transport">
        <transport clientCredentialType="None">
          <extendedProtectionPolicy policyEnforcement="Never" />
        </transport>
      </security>
    </binding>
    <binding name="wsHttpBindingConfig" closeTimeout="00:10:00" openTimeout="00:10:00"
      sendTimeout="00:10:00" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
      messageEncoding="Mtom">
      <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"
        maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
      <security>
        <transport>
          <extendedProtectionPolicy policyEnforcement="Never" />
        </transport>
      </security>
    </binding>
  </wsHttpBinding>
</bindings>
<services>
  <service behaviorConfiguration="CommonBehaviour" name="wcfAllInOne.wcfFileIO">
    <endpoint binding="mexHttpBinding" bindingConfiguration="" contract="IMetadataExchange" />
    <endpoint address="/basicHTTPEndPoint" binding="basicHttpBinding"
      bindingConfiguration="basicHttpBindingConfig" name="basicHttp"
      contract="wcfAllInOne.IwcfFileIO" />
    <endpoint address="/wsHTTPEndPoint" binding="wsHttpBinding" bindingConfiguration="wsHttpBindingConfig"
      name="wsHttp" contract="wcfAllInOne.IwcfFileIO" />
    <endpoint address="/wsHTTPSEndPoint" binding="wsHttpBinding"
      bindingConfiguration="wsHttpsBindingConfig" name="wsHttpSsl"
      contract="wcfAllInOne.IwcfFileIO" />
    <endpoint binding="mexHttpsBinding" bindingConfiguration="" contract="IMetadataExchange" />
  </service>
</services>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-16
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 1970-01-01
    • 1970-01-01
    • 2018-10-08
    相关资源
    最近更新 更多