关于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>
作者:zeke
出处:http://zhf.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

浙公网安备 33010602011771号