WCF:调用方未由服务器进行身份验证

 

在使用wsHttpBinding方式,且又没有安全验证的情况下客户端调用服务会报:调用方未有服务器进行身份验证的异常。

原因:wsHttpBinding默认为安全认证模式,排除此异常只需要修改配置文件,在wsHttpBinding配置中添加<security mode="None"/>即可。 

 

 1 <system.serviceModel>
 2     <services>
 3     <service name="WcfService2.Service1" behaviorConfiguration="WcfService2.Service1Behavior">
 4      <!-- Service Endpoints -->
 5      <endpoint address="" binding="wsHttpBinding" bindingConfiguration="NoneSecurity" contract="WcfService2.IService1">
 6       <identity>
 7        <dns value="localhost"/>
 8       </identity>
 9      </endpoint>
10      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
11     </service>
12    </services>
13     <bindings>
14       <wsHttpBinding>
15         <binding name="NoneSecurity"
16           maxBufferPoolSize="12000000" maxReceivedMessageSize="12000000" useDefaultWebProxy="false">
17           <readerQuotas maxStringContentLength="12000000" maxArrayLength="12000000"/>
18           <!--服务端和客户端都需要添加-->
19           <security mode="None"/>
20         </binding>
21       </wsHttpBinding>
22     </bindings>
23    <behaviors>
24     <serviceBehaviors>
25      <behavior name="WcfService2.Service1Behavior">
26       <!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false 并删除上面的元数据终结点-->
27       <serviceMetadata httpGetEnabled="true"/>
28       <!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息-->
29       <serviceDebug includeExceptionDetailInFaults="false"/>
30      </behavior>
31     </serviceBehaviors>
32    </behaviors>
33 </system.serviceModel>
34 </configuration>
Web.config

 

posted @ 2015-11-20 15:33  J.Y  阅读(467)  评论(0编辑  收藏  举报