WCF App.Config 配置参数详解:OpenTimeout, CloseTimeout, SendTimeout, ReceiveTimeout
WCF App.Config 配置参数详解:OpenTimeout, CloseTimeout, SendTimeout, ReceiveTimeout
关于这四个属性,在MSDN中的解释有点敷衍了事。
Open/Close/Receive/Send本是HTTP/TCP/SOCKET的概念,Read/Write Operation则是Web Service的概念。
1.OpenTimeout
客户端与服务端建立连接时,如果超过指定时间都还没完成,就引发TimeoutException。
在TCP通讯中,服务器必须首先准备好侦听端口并在该端口上侦听(Listen),而客户端则必须首先向服务器发出连接(Connect)指令,服务器端收到后作出接受响应(Accept)后连接成功,此后两者就可以互发消息了。
在WCF领域中,类似地,Open()表示建立一个Binding。
测试:拨网线。
2.CloseTimeout
与OpenTimeout类似, CloseTimeout用于关闭一个连接时。
一般情况下,客户端比较随意,不会在意这个超时异常。“Close()是我发出的,我自己决定何时清理资源。”
在服务器就不同了,她必须对客户端负责,不能乱来,在收到Close()成功的响应之前,或收到超时异常之前,不能随意清理与客户端相关的资源。
3.SendTimeout
客户端调用的超时,默认1分钟。每次调用都必须在指定时间内完成,否则将引发TimeoutException。
在TCP通讯中,双方建立连接后,客户端如果需要发送消息给服务端,就发送一个数据包给服务器,服务器收到后必须给出一个响应,客户端收到这个响应后才能宣告发送成功。类似地,服务器也可能主动发送消息给客户端。这两个动作,分别对于客户端和服务器来说,都是发送(Send),而对于另一方来说都是接收(Receive)。
但是,在WCF领域中的SendTimeout中的Send与TCP的Send理念上类似,但是实质上完全不是一回事。SendTimeout中的Send是指客户端发起调用。
在WCF客户端,用proxy.InnerChannel.OperationTimeout可以取到SendTimeout的值。(此处,proxy 是自动生成的服务代理类XxxClient的一个实例)
测试:在服务器的调用处理代码中插入MessageBox.Show(...)或Thread.Sleep(...)。
4.ReceiveTimeout
与SendTimeout同理, ReceiveTimeout中的Receive是指服务器端发起回调(Callback)。只有在双向通讯绑定时适用,如WSDualHttpBinding, NetTcpBinding, NetNamedPipeBinding, ...
ReceiveTimeout是服务器回调(Callback)的超时,默认10分钟。每次回调都必须在指定时间内完成,否则将在服务器端引发TimeoutException。
测试:在客户端的回调处理代码中插入MessageBox.Show(...)或Thread.Sleep(...)。

WCF开发框架之Winform客户端配置文件 - App.config
WCF开发框架之WSHttpBinding参数配置(C#代码配置+App.Config两种方案)
使用WCF连接池有效解决访问IIS承载的WCF出现SendTimeOut连接超时或IIS死机的问题
WCF 可靠性会话(reliableSession)中的inactivityTimeout和receiveTimeout 测试报告
WCF服务保持在线状态(Keep Alive),长时间闲置状态下不断线解决方案
WCF开发框架默认连接:HTTP协议+Message安全模式+Windows客户端认证
WCF顶级安全:HTTPS协议SSL证书+Windows认证+TransportWithMessageCredential安全模式
WCF开发框架-客户端采用Certificate认证模式调用基于HTTPS协议的WCF接口
WCF开发框架-客户端采用Windows身份认证调用HTTPS协议WCF接口
WCF开发框架-客户端采用BASIC身份认证调用HTTPS协议WCF接口
【原创】WCF开发框架 - 采用wsHttpBinding及basicHttpBinding连接https协议的WCF服务
WCF快速开发框架 - IIS承载WCF服务wsHttpBindings配置详解(HTTP协议)
WCF快速开发框架 - IIS承载WCF http协议BasicTcpBinding配置详解
WCF快速开发框架 - IIS承载WCF net.tcp协议NetTcpBinding配置详解
连接WCF服务错误:调用方未由服务进行身份验证,无法满足对安全令牌的请求
WCF开发框架之WCF服务器配置文件 - Web.config
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
