博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决WCF 调用方未由服务器进行身份验证或消息包含无效或过期的安全上下文令牌...
阅读量:4939 次
发布时间:2019-06-11

本文共 3928 字,大约阅读时间需要 13 分钟。

错误描述:

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

2. 无法处理消息。这很可能是因为操作“http://tempuri.org/ISCCLSvc/GetCarriersByWareHouse”不正确,或因为消息包含无效或过期的安全上下文令牌,或因为绑定之间出现不匹配。如果由于未处于活动状态导致服务中止了该通道,则安全上下文令牌无效。若要防止服务永久中止闲置会话,请增加服务终结点绑定上的接收超时。

3.或并发测试时,高并发出现问题2,实际案例:公司测试部门结果是并发到50就会出现问题2错误,并且平均响应时间也会很慢

 

解决后结果:

接口测试并发100无问题,并且平均响应时间减小5倍时间!

 

解决方法:

主要修改红色文本区域

 

<system.serviceModel>

   <bindings>
      <wsHttpBinding>
        <binding name="NoneSecurity"
          maxBufferPoolSize="12000000" maxReceivedMessageSize="12000000" useDefaultWebProxy="false">
          <readerQuotas maxStringContentLength="12000000" maxArrayLength="12000000"/>
          <security mode="None"/>
        </binding>
      </wsHttpBinding>
    </bindings>

    <services>

    <service name="WcfService2.Service1" behaviorConfiguration="WcfService2.Service1Behavior">
     <!-- Service Endpoints -->
     <endpoint address="" binding="wsHttpBinding" bindingConfiguration="NoneSecurity" contract="WcfService2.IService1">
      <!-- 
              部署时,应删除或替换下列标识元素,以反映
              在其下运行部署服务的标识。删除之后,WCF 将
              自动推导相应标识。
          -->
      <identity>
       <dns value="localhost"/>
      </identity>
     </endpoint>
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
    </service>
   </services>
   <behaviors>
    <serviceBehaviors>
     <behavior name="WcfService2.Service1Behavior">
      <!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false 并删除上面的元数据终结点-->
      <serviceMetadata httpGetEnabled="true"/>
      <!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息-->
      <serviceDebug includeExceptionDetailInFaults="false"/>
     </behavior>
    </serviceBehaviors>
   </behaviors>
</system.serviceModel>
</configuration>

客户端将security配置改为<security mode="None"/>

 

 

详细错误信息:

 

System.ServiceModel.Security.MessageSecurityException was unhandled Message=An unsecured or incorrectly secured fault was received from the other party. See the inner FaultException for the fault code and detail. Source=mscorlib StackTrace: Server stack trace: at System.ServiceModel.Security.SecuritySessionClientSettings`1.SecurityRequestSessionChannel.ProcessReply(Message reply, TimeSpan timeout, SecurityProtocolCorrelationState correlationState) at System.ServiceModel.Security.SecuritySessionClientSettings`1.SecurityRequestSessionChannel.Request(Message message, TimeSpan timeout) at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at ApiStressTest.SCCL.ISCCLSvc.GetCarriersByWareHouse(TransModel tm) at ApiStressTest.SCCL.SCCLSvcClient.GetCarriersByWareHouse(TransModel tm) in D:\SCCL\ApiTest.new\ApiStressTest\Service References\SCCL\Reference.cs:line 198 at ApiStressTest.ServiceWrapper.ServiceAPIWrapperMethod(Object stateInfo) in D:\SCCL\ApiTest.new\ApiStressTest\SCCLProgram.cs:line 416 at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart(Object obj) InnerException: System.ServiceModel.FaultException Message=无法处理消息。这很可能是因为操作“http://tempuri.org/ISCSvc/GetHouse”不正确,或因为消息包含无效或过期的安全上下文令牌,或因为绑定之间出现不匹配。如果由于未处于活动状态导致服务中止了该通道,则安全上下文令牌无效。若要防止服务永久中止闲置会话,请增加服务终结点绑定上的接收超时。 InnerException:

 

转载于:https://www.cnblogs.com/yeye518/p/5719603.html

你可能感兴趣的文章
固定资产管理系统 概要说明书说明书
查看>>
类的绑定方法
查看>>
2016-5-25授课(3)
查看>>
新增加的元素 相关操作获取不到
查看>>
Zabbix 3.0编译安装
查看>>
json介绍及简单示例
查看>>
h.264 率失真优化
查看>>
【转】拓扑排序入门
查看>>
Spring中Bean的命名问题(id和name区别)及ref和idref之间的区别
查看>>
How to install 64-bit Google Chrome 28+ on 64-bit RHEL/CentOS 6 or 7
查看>>
搭建LNAMP环境(三)- 源码安装Apache2.4
查看>>
linux --> fork()详解
查看>>
Spring注解 开发
查看>>
#!/bin/bash(转)
查看>>
BZOJ4589 Hard Nim(博弈+FWT)
查看>>
hdu 2473 Junk-Mail Filter 并查集删点,模板题
查看>>
【Maps】【搜狗】
查看>>
Linux命令详解-whatis
查看>>
分组求和
查看>>
eclipse 忽略 target 设置
查看>>