优化 WCF Web 服务性能

06/08/2017

本文内容

WCF 服务公开许多影响性能的配置参数。 本主题提供有关为这些配置参数设置最佳值以提高 WCF 服务性能的常规指南。

实现后端 WCF 服务的 serviceThrottling 行为

实现后端 WCF 服务的 serviceThrottling 行为。 服务限制允许您在后端 WCF 服务器上进行负载,并强制执行资源分配。 后端 WCF 服务的 serviceThrottling 行为是通过修改 WCF 服务的配置文件中的 maxConcurrentCalls、 maxConcurrentSessions 和 maxConcurrentInstances 参数的值来配置的。 将 maxConcurrentCalls、 maxConcurrentSessions 和 maxConcurrentInstances 设置为大于 16 * cpu 或 cpu 内核数的值。 例如,在具有8个 CPU 核心的计算机上,将 maxConcurrentCalls、 maxConcurrentSessions 和 maxConcurrentInstances 设置为大于 128 (16 * 8 = 128) ,如下所示:

maxConcurrentCalls="200"

maxConcurrentSessions="200"

maxConcurrentInstances="200" />

增加后端 WCF 服务 web.config 文件中的 ListenBacklog 和 NetTcpBinding 属性的默认值

NetTcpBinding. ListenBacklog 属性控制可为 Web 服务挂起的最大排队连接请求数。 NetTcpBinding. MaxConnections 属性控制要共用的最大连接数,以便在客户端上进行后续重用,并控制在服务器上允许等待调度的最大连接数。 其中每个属性都使用默认值10,这可能是不理想的,尤其是对于需要高吞吐量的文档处理方案。

对于使用实现 netTcpBinding 绑定类的 WCF 服务的高吞吐量、文档处理方案,请考虑增加这些属性的默认值。

在下面的示例中, listenBacklog 和 maxConnections 参数均设置为值 "200"。

closeTimeout="00:10:00"

openTimeout="00:10:00"

receiveTimeout="00:10:00"

sendTimeout="00:10:00"

transactionFlow="false"

transferMode="Buffered"

transactionProtocol="OleTransactions"

hostNameComparisonMode="StrongWildcard"

listenBacklog="200"

maxBufferPoolSize="1048576"

maxBufferSize="10485760"

maxConnections="200"

maxReceivedMessageSize="10485760">

maxDepth="32"

maxStringContentLength="8192"

maxArrayLength="16384"

maxBytesPerRead="4096"

maxNameTableCharCount="16384" />

ordered="true"

inactivityTimeout="00:10:00"

enabled="false" />

消除运行 WCF Web 服务所不需要的 ASP.NET httpModules

默认情况下,在 IIS 6.0 和 IIS 7.5/7.0 的经典管道或集成管道中的请求管道中定义了多个 ASP.NET 的 httpModules。 这些组件截获并处理所有传入的请求。 默认模块在32位 ASP.NET 应用程序的%windir%\Microsoft.NET\Framework\v2.0.50727\CONFIG 文件夹中包含的 web.config 文件中定义,并在64位 ASP.NET 应用程序的%windir%\Microsoft.NET\Framework64\v2.0.50727\CONFIG 文件夹中定义,如以下代码片段所示。

在大多数情况下,无需加载所有这些模块。 因此,在运行 WCF Web 服务时,可以通过消除以下 httpModules 来提高性能:

会话

WindowsAuthentication

FormsAuthentication

PassportAuthentication

RoleManager

AnonymousIdentification

配置文件

使用 WCF 模块/处理程序注册工具配置 WCF 模块/处理程序,并提高 IIS 7.5/7.0 托管 WCF 服务的可伸缩性

WCF 同步 HTTP 模块和处理程序

WCF 异步 HTTP 模块和处理程序

WCF HTTP 模块和处理程序

另请参阅

wcf 高性能服务器,优化 WCF Web 服务性能相关推荐

  1. 几个优化 Cacti 监控服务性能的技巧

    几个优化 Cacti 监控服务性能的技巧 by ROBIN on 2011年05月26日 · LEAVE A COMMENT · in NETWORK, 信息世界 | IT 这几天一直在深入研究 Ca ...

  2. lvs服务器需要开启web服务么_如何检测 Web 服务请求丢失问题

    导读 『StabilityGuide』是阿里多位阿里技术工程师共同发起的稳定性领域的知识库开源项目,涵盖性能压测.故障演练.JVM.应用容器.服务框架.流量调度.监控.诊断等多个技术领域,以更结构化的 ...

  3. lvs服务器需要开启web服务么_Nginx+Keepalived实现web服务器高可用

    1.Nginx 业务背景 现公司需求快速搭建web服务器,对外提供给用户web服务. 需求拆分 需要基于http协议的软件,搭建服务实现 介绍 常见用法: 1) web服务器软件 httpd http ...

  4. 让你的 wowza 服务器提供 RESTful web 服务

    有时我们 nginx 需要和 wowza 服务器交互以进行一些 LB 事宜:有时我们的管理员需要实时了解 wowza 服务器的一些其他状态信息(比如一些自定义对象的状态等等),而用 rtmp 不是太方 ...

  5. WCF 扩展一:格式化Web服务请求XML

    扩展原因 有一WebService,在工程中添加Web Service引用后调用不成功,但是用SoapUI测试正常 分析 用tctTrace跟踪报文后发现wcf生成的报文命名空间与SoapUI的不一样 ...

  6. 虚拟机 高性能服务器,3种提高虚拟机性能并最大化效率的方法

    虚拟化基础架构的真正好处是获得性能比率,而这只有通过优化VM使其有效运行而不会损害其他托管资源才能实现. 虚拟化对IT的影响是深远的,并且将继续逐年增长.基于云的服务的大量增长在一定程度上推动了许多行 ...

  7. lvs服务器需要开启web服务么_Centos7搭建LVS+Keepalived高可用Web

    LVS + Keepalived 高可用集群 Keepalived的设计目标是构建高可用的LVS负载均衡的集群,可以调用ipvsadm工具创建虚拟机,不仅仅用作双机热备,还可以使用keepalived ...

  8. web服务性能监控方案

    一.本地测试工具的使用 优点:  一次触发多次请求,且每个参数可动态变化,有利于弥补接口单个单元测试场景覆盖不足的问题 可以完成对接口性能的好怀定性检验,对接口性能测试作初步删选. 开发人员共同一个开 ...

  9. WCF与ASMX Web服务差异比较[译]

    First of all, it needs to understand that WCF Service provides all the capabilities of .NET web serv ...

最新文章

  1. PHP内核介绍及扩展开发指南—基础知识
  2. gsoap 学习 1-由wsdl文件生成h头文件
  3. 学python以后是做什么工作-对话极客晨星:现在学Python 长大可以从事什么工作?...
  4. hashmap取值_一万六千字的HashMap深度剖析
  5. LeetCode 21. 合并两个有序链表(Merge Two Sorted Lists)
  6. Maven 加载ojdbc14.jar报错,解决方法
  7. uni-app 模拟机调试环境搭建
  8. Windows:定时/进程结束执行命令
  9. 赵本山 政治敏锐_每天5分钟保持敏锐的7种方法
  10. mysql2008分数约束_关于SQL2008对表中列的约束
  11. @Scope注解的proxyMode的作用以及如何影响IoC容器的依赖查找
  12. java判断南北纬度的分界线_中国地理之南北分界线标志园,就在江苏淮安,是南是北一看便知...
  13. 开源量化框架Catalyst中文教程(3)——双均线策略
  14. Linux26期 6月21日
  15. 算法:js 数组 array 去重,并显示所有重复的元素
  16. 深入了解服务注册与发现
  17. 4.6 基于反熵的状态同步
  18. ACM-ICPC 2018 南京赛区网络预赛 E. AC Challenge
  19. Spark读写HBase:处理纽约出租车数据
  20. 产品设计需要学的8款软件

热门文章

  1. Android 8.0 BLE 低功耗蓝牙开发记录
  2. 在被受控节点上创建文件或目录
  3. html自动生成验证码,JS自动生成动态HTML验证码页面
  4. 地球主题网页设计题材——大学生网页制作期末作业HTML+CSS+JS
  5. qml调用百度地图api实现卫星地球模式画路书轨迹
  6. ❤️整理2万字带你走进C语言(详细讲解+代码演示+图解)❤️(强烈建议收藏!!!)
  7. mysql bad gateway_502 Bad Gateway
  8. 交通色彩以别具一格的方式讲述着故事
  9. Cesium-Clock
  10. 首款MeeGo系统上网本 华硕Eee PcX101H独家首测(8)