WCF常见问题【1】

这里纪录平常使用WCF时候遇到的一些问题,希望给有遇到相同问题的人一些参考!

1. 最近项目中使用WCF服务自动同步一下JSON的静态文件,WCF服务寄宿在Windows服务中,由于服务客户端是IIS,对外提供接口调用比较频繁,日志记录出来的错误如下:

套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的。本地套接字超时是“00:00:58.9362455”。
远程主机强迫关闭了一个现有的连接。

我开始写了一个测试程序,新建100个线程,每个线程调用10次WCF服务,异常妥妥的出现了。

开始以为是超时时间太短了,调用频率太高,服务队列里等待时间超时,更改了服务接收和发送的超时时间为1个小时,还是有这个问题。也看了一下网上其他人遇到此问题的设置security mode="None", 依然无效

 <binding name="defaultTcpBinding" closeTimeout="01:00:00" receiveTimeout="01:00:00"
                 sendTimeout="01:00:00" maxConnections="3000" openTimeout="01:00:00">
          <readerQuotas maxStringContentLength="10240000" />

          <security mode="None" />
        </binding>

后来查资料,看看服务绑定的其他配置项的作用,找到了一个listenBacklog="3000",果断把这个值设置大一点,再跑一下测试程序,异常解决!配置如下

   <binding name="defaultTcpBinding" closeTimeout="01:00:00" receiveTimeout="01:00:00"
                 sendTimeout="01:00:00" maxConnections="3000" openTimeout="01:00:00" listenBacklog="3000">
          <readerQuotas maxStringContentLength="10240000" />

          <security mode="None" />
        </binding>

listenBacklog 可为 Web 服务挂起的最大排队连接请求数。 这是一个套接字级别属性,控制可能为 Web 服务挂起的最大排队连接请求数。ListenBacklog 太低时,WCF 将停止接受请求,并因此删除新连接,直到服务器承认一些现有队列连接。默认值为 16 * 处理器数。

服务中还是需要合理控制客户端连接数量,以上仅作为参考实验用参数,实际配置还需要根据实际情况合理配置。

时间: 2024-08-24 01:05:21

WCF常见问题【1】的相关文章

WCF常见问题(1) -- WebService/WCF Session Cookie

原文:WCF常见问题(1) -- WebService/WCF Session Cookie 在.net 3.0推出WCF之前使用的WebService,有的应用有使用Session保持一些信息,在不同的WebMethod中共享存储信息.比如:保持登陆用户的信息等.其原理是应用ASP.NET兼容模式,利用HttpContext来保持请求的上下文. 为了显示WebService/WCF不同应用下的Session/Cookie应用,这里分别创建两个Service应用:一个是WebService Ap

WCF学习系列一【WCF Interview Questions-Part 1 翻译系列】

http://www.topwcftutorials.net/2012/08/wcf-faqs-part1.html WCF Interview Questions – Part 1 This WCF Tutorial is a collection of most frequently asked interview questions about Windows Communication Foundation (WCF) covering the beginner to professio

WCF 数据服务 4.5

.NET Framework 4.5 其他版本 WCF 数据服务(以前称为"ADO.NET Data Services")是 .NET Framework 的一个组件.可以使用此组件创建一些服务,利用开放式数据协议 (OData) 来借助具象状态传输 (REST)(可能为英文网页)语义通过 Web 或 Intranet 公开和使用数据.OData 将数据公开为可通过 URI 寻址的资源. 可使用 GET.PUT.POST 和 DELETE 这些标准 HTTP 谓词来访问和更改数据.OD

[Silverlight]常见问题

[Silverlight]常见问题 1. Silverlight项目是否支持ADO.NET对象? 不支持,Silverlight不支持常见的ADO.NET对象,如DataTable,DataSet,Database Connection等.你可以使用System.Data命名空间,但是它只包含了一切相关的服务而非ADO.NET对象. 2.Silverlight项目可以引用常规的类库吗? 不能,只能引用Silverlight类型的类库. 3.Silverlight中有 1. Silverlight

PHP常见问题及解答

当作PHP学习时,总是会在baidu上查很多的例如开发环境的选择呀,PHP好不好呀!或者是不是转学JAVA,或是.NET等: 首先本人是从2010年下半年开始报名学的PHP(IN Guangzhou),每周一天学了近6个月左右,从最基础的HTML,CSS,DIV,JAVASCRIPT,AJAX,PHP,然后学二次开发:闲暇之余还开通了一个个人blog( PHP wordpress); 由于个人工作原因,这几年放了一段时间未动PHP了,今年开始又自学了.NET; ---目的就想业余做一份兼职,锻炼

微信JS-SDK说明文档及常见问题处理

概述 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫.卡券.支付等微信特有的能力,为微信用户提供更优质的网页体验. 此文档面向网页开发者介绍微信JS-SDK如何使用及相关注意事项. 使用说明 在使用微信JS-SDK对应的JS接口前,需确保公众号已获得使用对应JS接口的权限,可登录微信公众平台进入“开发者中心”查看对应的接口权限. 注意:

NHibernate常见问题及解决方法

NHibernate常见问题及解决方法 曾经学过NHibernate的,但是自从工作到现在快一年了却从未用到过,近来要巩固一下却发现忘记了许多,一个"in expected: <end-of-text> (possibly an invalid or unmapped class name was used in the query)."错误查了好半天终于查到了.这篇文章是我转载的NHibernate的常见错误... hbm.xmlNHibernate文件中版本号可能引起的

NTB调试常见问题指南

作为实现不同PCI域乃至跨节点数据传输的重要器件,NTB在服务器和存储领域实现双控.内存互访等方面发挥着重要的作用.由于它本身既作为virtual port出现,又可以被互联的结点通过pci scan看到,作为一个link port出现,加之其上实现的地址转换和转发功能,在实际工程项目中,难免会碰到各种问题.本文结合笔者最近的工作,分享了NTB调试过程中常见的问题和解决思路和办法. 从问题的现象来看,具体常见问题包括: 找不到NTB设备: NTB mailbox无法传送数据: ReqID 无法探

.NET4.5中WCF中默认生成的basicHttpsBinding的研究

起因: 使用.net4.5建立了一个空白的WCF服务.默认使用的绑定配置是basicHttpsBinding. 问题发现: 1.用客户端进行服务引用,生成了默认的配置文件,其中绑定配置是basicHttpBinding. 2.因为需要单次传递大批量数据,所以修改绑定配置,如下: <basicHttpBinding> <binding name="BasicHttpBinding_IService" closeTimeout="00:10:00" r