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(...)。



C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务


版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
上一篇:开发框架3.0:WebService升级WCF操作指引(1)
下一篇:WCF 可靠性会话(reliableSession)中的inactivityTimeout和receiveTimeout 测试报告
评论列表

发表评论

评论内容
昵称:
关联文章

WCF App.Config 配置参数详解OpenTimeout, CloseTimeout, SendTimeout, ReceiveTimeout
WCF开发框架之WSHttpBinding参数配置(C#代码配置+App.Config两种方案)
WCF开发框架 - NetTcpBinding配置web.config与C#代码配置
WCF开发框架 - BasicHttpBinding绑定的web.config与C#代码配置(支持https协议)
WCF快速开发框架 - IIS承载WCF http协议BasicTcpBinding配置详解
WCF快速开发框架 - IIS承载WCF服务wsHttpBindings配置详解(HTTP协议)
WCF快速开发框架 - IIS承载WCF net.tcp协议NetTcpBinding配置详解
CSFramework.WebApi后端框架 - 系统配置 - app.config
C#编码直接调用WCF服务时协议参数设置
WCF服务保持在线状态(Keep Alive),长时间闲置状态下不断线解决方案
【原创】WCF开发框架 - 采用wsHttpBinding及basicHttpBinding连接https协议的WCF服务
WCF开发框架-客户端采用BASIC身份认证调用HTTPS协议WCF接口
WCF开发框架-客户端采用Windows身份认证调用HTTPS协议WCF接口
WCF开发框架-客户端采用Certificate认证模式调用基于HTTPS协议的WCF接口
C#.Net WCF实例详解及源码下载
WCF客户端和服务端配置要点
连接WCF服务错误:调用方未由服务进行身份验证,无法满足对安全令牌的请求
C#源代码安全缺陷与提高源代码质量解决方案-WCF服务配置安全
WCF顶级安全:HTTPS协议SSL证书+Windows认证+TransportWithMessageCredential安全模式
WCF开发框架默认连接:HTTP协议+Message安全模式+Windows客户端认证

热门标签
.NET5 .NET6 .NET7 APP Auth-软件授权注册系统 Axios B/S B/S开发框架 Bug Bug记录 C#加密解密 C#源码 C/S CHATGPT CMS系统 CodeGenerator CSFramework.DB CSFramework.EF CSFrameworkV1学习版 CSFrameworkV2标准版 CSFrameworkV3高级版 CSFrameworkV4企业版 CSFrameworkV5旗舰版 CSFrameworkV6.0 DAL数据访问层 Database datalock DbFramework Demo教学 Demo下载 DevExpress教程 DOM EF框架 Element-UI EntityFramework ERP ES6 Excel FastReport GIT HR IDatabase IIS JavaScript LINQ MES MiniFramework MIS NavBarControl Node.JS NPM OMS ORM PaaS POS Promise API Redis SAP SEO SQL SQLConnector TMS系统 Token令牌 VS2022 VSCode VUE WCF WebApi WebApi NETCore WebApi框架 WEB开发框架 Windows服务 Winform 开发框架 Winform 开发平台 WinFramework Workflow工作流 Workflow流程引擎 版本区别 报表 踩坑日记 操作手册 代码生成器 迭代开发记录 基础资料窗体 架构设计 角色权限 开发sce 开发技巧 开发教程 开发框架 开发平台 开发指南 客户案例 快速搭站系统 快速开发平台 秘钥 密钥 权限设计 软件报价 软件测试报告 软件简介 软件开发框架 软件开发平台 软件开发文档 软件体系架构 软件下载 软著证书 三层架构 设计模式 生成代码 实用小技巧 收钱音箱 数据锁 数据同步 微信小程序 未解决问题 文档下载 喜鹊ERP 喜鹊软件 系统对接 详细设计说明书 行政区域数据库 需求分析 疑难杂症 蝇量级框架 蝇量框架 用户管理 用户开发手册 用户控件 在线支付 纸箱ERP 智能语音收款机 自定义窗体 自定义组件 自动升级程序