WCF使用IIS发布服务的配置

  关于WCF开发的服务,如果使用IIS发布部署的,对于Web.Config文件中的配置还是相对严格,如果客户端和服务端的配置不一致就会出现莫名其妙的问题,让人及其头疼,所以要对WCF的配置设置非常熟悉。

View Code
<system.serviceModel>
    <bindings>
      <basicHttpBinding>
      </basicHttpBinding>
      <wsHttpBinding>
        <binding name="wsTSBinding" maxReceivedMessageSize="2147483647" messageEncoding="Text" receiveTimeout="00:30:00" sendTimeout="00:30:00">
          <security mode="Message">
            <!--定义消息级安全性要求的类型,为Windows、用户名、证书-->
            <message clientCredentialType="Windows" />
            <transport clientCredentialType="None" />
          </security>
          <!--<security mode="Transport">
            <transport clientCredentialType="None" />
          </security>-->
        </binding>
      </wsHttpBinding>
      <netMsmqBinding>
      </netMsmqBinding>
      <netTcpBinding>
        
      </netTcpBinding>
    </bindings>
    <services>
      <service name="WcfService1.Persons" behaviorConfiguration="WCFServiceBehavior">
        <!-- Service Endpoints -->
        <endpoint address="" binding="wsHttpBinding" bindingConfiguration="wsTSBinding" contract="WcfService1.IPersons">
          <!-- 
              Upon deployment, the following identity element should be removed or replaced to reflect the 
              identity under which the deployed service runs.  If removed, WCF will infer an appropriate identity 
              automatically.
          -->
          <identity>
            <!--dns value的值设置为:WCFServerCA,就是证书的名称-->
            <!--<dns value="WCFCert" />-->
          </identity>
        </endpoint>
        <!--<endpoint
          address="http://localhost:9008/StockService.svc"
          binding="basicHttpBinding" contract="WcfService1.IStockService">
        </endpoint>-->
        <!--<endpoint
          address="net.msmq://localhost:9007/Persons.svc"
          binding="netMsmqBinding" contract="WcfService1.IPersons">
        </endpoint>
        <endpoint
          address="net.tcp://localhost:9006/Persons.svc"
          binding="netTcpBinding" contract="WcfService1.IPersons">
        </endpoint>-->
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:9009/"/>
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="WCFServiceBehavior">
          <!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false 并删除上面的元数据终结点 -->
          <serviceMetadata httpGetEnabled="true" />
          <!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 -->
          <serviceDebug includeExceptionDetailInFaults="false" />
          <!--<serviceAuthenticationManager serviceAuthenticationManagerType="Negotiate, Digest, Basic"/>-->
          <serviceCredentials>
            <!--指定一个 X.509 证书,用户对认证中的用户名密码加密解密-->
            <!--<serviceCertificate findValue="WCFCert" x509FindType="FindBySubjectName" storeLocation="CurrentUser" />-->
            <!--自定义用户名和密码验证的设置-->
            <!--<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="WcfService1.CustomValidators.MyCustomValidator,WcfService1" />-->
            <clientCertificate>
              <!-- 客户凭据验证模式为 None 不验证 -->
              <authentication certificateValidationMode="None" />
            </clientCertificate>
          </serviceCredentials>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>
原文地址:https://www.cnblogs.com/ZHF/p/2754174.html