WCF 超时情形

在做WCF开发时,会经常碰到超时的情况,总结了一下,主要是由一下原因引起:

1.客户端没有正确地Close。

确保每次客户端调用完毕之后,就要调用Close,保证连接数。

另外,服务端配置最大连接数:

<serviceBehaviors>

<serviceThrottling maxConcurrentCalls="200" maxConcurrentSessions="100" maxConcurrentInstances="100" />

</serviceBehaviors>

maxConcurrentCalls:并发消息数,默认16

maxConcurrentInstances:并发实例数,默认26

maxConcurrentSessions:并发会话数,默认10

参考:http://blog.csdn.net/hliq5399/article/details/42968451

2.设置的超时时间太短 或者 接收字节太小

如下划横线都有可能:


<bindings>

<wsDualHttpBinding>

<binding name="WSDualHttpBinding_IClientConnector" closeTimeout="00:01:00"

openTimeout="00:00:05"

receiveTimeout="00:01:01"

sendTimeout="00:00:09" maxReceivedMessageSize="2147483647">

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

</binding>

</wsDualHttpBinding>

曾遇到一种情况,由于maxReceivedMessageSize没有设置,传输的数据又有点大,故一直超时。最后设置了最大接收字节数,瞬间连通了。

3.服务器已经关闭

这种情况发生了调试的时候。

有时候,我们打开服务端和客户单进行调试,当先关闭了服务端的时候,客户端将不可达,就出现了超时错误。

4.开启安全通信的时候有可能超时

如设置了消息安全,或者传输安全的,且客户端和服务端不在同一台服务器上的时候,很有可能超时。这是由于安全没有配置好的原因。

时间: 2024-10-09 05:29:29

WCF 超时情形的相关文章

DB2通用数据库性能调整的常用方法

DB2通用数据库性能调整的常用方法 Agenda 统计值更新--runstats  调整Buffer pool  调整日志缓冲区大小  应用程序堆大小  排序堆大小和排序堆值  代理程序的数目  锁  活动应用程序的最大数目  页清除程序的数目  I/O服务器的数目  编入组的提交数目 统计信息更新 当对SQL 查询进行优化时,SQL 编译器所做出的决定会受到优化器的数据库内容模型的重大影响.  优化器使用该数据模型来估计可以用于解决某个特定查询的其它存取路径的成本.  数据模型中的关键元素是一

引用:WCF链接服务超时解决办法

WCF客户端在实际应用中,有许多应用技巧需要我们不断的去积累经验来掌握.这样才能避免或者更好的解决一些应用中出现的问题.在这里我们将会为大家介绍一下WCF链接服务超时的相关处理方法. 调用服务器端时,当点击十次后,客户端就会出现死机,然后是一份钟超时. System.TimeoutException: 对“http://localhost:3768/”的 HTTP 请求已超过为 00:01:00 分配的超时.为此操作分配的时间可能是较长超时的一部分. 查找原因后发现客户端在使用完通道后,没有进行

关于wcf 的连接超时问题

今天网上的系统突然报错,经过排查是调用wcf报错了,报错信息如下: System.TimeoutException: The request channel timed out while waiting for a reply after 00:00:00. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time all

&lt;转&gt;WCF中出现死锁或者超时

WCF回调中的死锁 一.服务器端死锁 对于如下服务: [ServiceContract(CallbackContract = typeof(INotify))] public class DownloadService { [OperationContract] public void Download() { //开始下载操作 //..... //通知下载完成 var callback = OperationContext.Current.GetCallbackChannel<INotify>

WCF 响应超时问题

错误信息: 有关调用实时(JIT)调试而不是此对话框的详细信息, 请参见此消息的结尾. ************** 异常文本 ************** System.TimeoutException: 请求通道在等待 00:01:00 以后答复时超时.增加传递给请求调用的超时值,或者增加绑定上的 SendTimeout 值.分配给此操作的时间可能已经是更长超时的一部分. ---> System.TimeoutException: 对"http://124.168.133.296/Te

WCF学习--Windows事务系统

最近开始WCF相关知识的学习,虽然实际工作中使用公司自己的一套SOA系统,但微软的一套服务架构还是具有很大的参考意义.除了WCF的一些基础使用,相对比较复杂的内容有分布式的事务和通信的安全等,不过基本都和WS-协议簇相关联.为了引出WCF中的事务处理,今天优先介绍Windows下的事务处理模型,说实话用了很多年的TransactionScope,其实我一直都不知道它到底是如何运作的,回想Java中不管是EJB还是Spring也有和这部分类似的实现.今天通过学习蒋金楠老师的WCF服务框架解析来了解

WCF初探-28:WCF中的并发

理解WCF中的并发机制 在对WCF并发机制进行理解时,必须对WCF初探-27:WCF中的实例化进行理解,因为WCF中的并发特点是伴随着服务实例上下文实现的.WCF的实例上下文模型可以通过InstanceContext的属性来进行设置,WCF中的并发就是指一个实例上下文处理请求消息的能力,当需要在一个实例上下文中处理多个消息请求时就会产生并发.所以当InstanceContextMode的值为PerSession或Single的时候就会产生并发的情况,这时我们可以通过设置ConcurrencyMo

WCF:并发处理

当多个线程同时访问相同的资源的时候就会产生并发,WCF缺省情况下会保护并发访问.对并发访问需要恰当处理,控制不好不仅会大大降低WCF服务的吞吐量和性能,而且还有可能会导致WCF服务的死锁.一.WCF并发模型:在WCF中使用 ServiceBehaviorAttribute中的ConcurrencyMode属性来控制这个设置.ConcurrencyMode属性是个枚举类型,有三个值:ConcurrencyMode.Single.ConcurrencyMode.Reentrant和Concurren

WCF传byte[]的方法

如果想让WCF传输byte[]数组,那么需要使用Mtom.bingding可以是wsDualHttpBinding (这个用于双工,也就是需要回掉的情形)或 wsHttpBinding. <system.serviceModel> <bindings> <wsDualHttpBinding> <binding name="myBinding" messageEncoding="Mtom"/> </wsDualHt