zoukankan      html  css  js  c++  java
  • WCF分布式开发常见错误(20):TimeoutException was unhandled

         在进行WCF应用程序开发的时候,如果大量客户端发送请求到WCF服务,往往会出现这个异常,超时。WCF服务响应超时。没有在指定的时间00:01:00内打开操作,分配给这个操作的时间或许只是超时时间的一部分。  错误信息如下:
      The open operation did not complete within the allotted timeout of 00:01:00. The time allotted to this operation may have been a portion of a longer timeout.
    【1】错误截图:

    【2】原因分析:
      这个超时异常的产生,直接导致的原因是,大量的客户端请求发送给服务。我这里使用的100个客户端,实例化100个代理。然后请求。模拟客户端的大量并发请求。服务基本延时100MS。模拟处理。这里大概在10个请求的时候,服务处理出现阻塞。进而等待,最后出现超时异常。
    【3】解决办法:
      涉及到大量请求的时候,可以考虑使用WCF的 ServiceThrottlingBehavior 属性。 名称 说明
     MaxConcurrentCalls 获取或设置一个值,该值指定整个 ServiceHost 中正在处理的最多消息数。
     MaxConcurrentInstances 获取或设置一个值,该值指定服务中可以一次执行的最多 InstanceContext 对象数。
     MaxConcurrentSessions 获取或设置一个指定 ServiceHost 对象可一次接受的最多会话数的值。

      这里我们设置一下服务的限流行为就可以了。具体如下:

    Code
       
      这里1000可以修改,根据你的实际WCF服务需求量。服务激活类型和实例调用方式。然后进行调整。修改完毕以后,重新启动服务,基本就正常了。
    参考文章:http://msdn.microsoft.com/en-us/library/system.servicemodel.description.servicethrottlingbehavior_properties.aspx

  • 相关阅读:
    windows10+vs2010+lwip+Wireshark+winpcap环境变量配置
    Anaconda中安装了Libtiff模块,但运行程序显示ModuleNotFoundError: No module named 'libtiff'
    利用Anaconda软件安装opencv模块
    Windows10+Anaconda+PyTorch(cpu版本)环境搭建
    Spyder中报错: Check failed: PyBfloat16_Type.tp_base != nullptr
    Keras中图像维度介绍
    机器学习2-7
    LeetCode637. 二叉树的层平均值
    LeetCode617. 合并二叉树
    LeetCode590. N叉树的后序遍历
  • 原文地址:https://www.cnblogs.com/Kingly/p/1529398.html
Copyright © 2011-2022 走看看