代码之家  ›  专栏  ›  技术社区  ›  Markus

将HTTP和HTTPS绑定添加到WCF Web服务

  •  1
  • Markus  · 技术社区  · 14 年前

    我有一个WCF Werbservice,我想通过HTTP和HTTPS联系他。

    这是我真正的尝试。但是我不能再使用http和https访问服务了。:(请帮忙

    <system.serviceModel>
      <bindings>
       <basicHttpBinding>
        <binding name="DefaultBinding" closeTimeout="10:01:00" openTimeout="10:01:00" receiveTimeout="10:10:00" sendTimeout="10:01:00"
            transferMode="Streamed"
            maxBufferSize="104857600" maxBufferPoolSize="524288000" maxReceivedMessageSize="104857600">
         <readerQuotas
            maxDepth="2147483647" maxStringContentLength="2147483647"
            maxArrayLength="2147483647" maxBytesPerRead="2147483647"
            maxNameTableCharCount="2147483647" />
         <security mode="None">
         </security>
        </binding>
        <binding name="SSLBinding">
         <security mode="TransportWithMessageCredential">
          <transport clientCredentialType="None"/>
         </security>
        </binding>
       </basicHttpBinding>
      </bindings>
      <services>
       <service behaviorConfiguration="DnsService.DNSSerivceBehavior" name="DnsService.DNSSerivce">
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="DefaultBinding"  contract="DnsService.IDNSService">
         <identity>
          <dns value="localhost"/>
         </identity>
        </endpoint>
        <endpoint address="" binding="basicHttpBinding" bindingConfiguration="SSLBinding"  contract="DnsService.IDNSService">
         <identity>
          <dns value="localhost"/>
         </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
        <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange"/>
       </service>
      </services>
      <behaviors>
       <serviceBehaviors>
        <behavior name="DnsService.DNSSerivceBehavior">
         <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
         <serviceMetadata httpGetEnabled="true"/>
         <serviceMetadata httpsGetEnabled="true"/>
         <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
         <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
       </serviceBehaviors>
      </behaviors>
     </system.serviceModel>
    
    1 回复  |  直到 14 年前
        1
  •  1
  •   Ladislav Mrnka    14 年前

    首先,您有两个地址为空的端点和两个地址为mex的端点,但这些端点没有相同的绑定。必须为这些端点定义不同的地址。对于安全绑定,请仅指定传输模式,除非要对用户进行身份验证。对于服务元数据,用包含这两个属性的单个元素替换serviceMetadata的两个实例。

    为什么要用10小时的超时时间?