超时WCF服务

Tru*_*erG 61 configuration wcf timeout wcf-binding

如何在WCF中使用超时?我知道您可以为客户端绑定配置sendTimeoutreceiveTimeout.但它们如何运作?

MSDN将sendTimeout描述为:

TimeSpan值,指定为完成发送操作提供的时间间隔.该值应大于或等于零.默认值为00:01:00.

什么是发送操作/接收操作?

Bri*_*ian 61

客户端:

  • SendTimeout用于初始化OperationTimeout,它控制发送消息的整个交互(包括在请求 - 回复情况下接收回复消息).从CallbackContract方法发送回复消息时,此超时也适用.
  • 打开和关闭通道时使用OpenTimeout和CloseTimeout(当没有传递显式超时值时).
  • 未使用ReceiveTimeout.

服务器端:

  • 发送,打开和关闭超时与客户端(用于回调)相同.
  • ServiceFramework层使用ReceiveTimeout初始化会话空闲超时.

来源是MSDN论坛上的Brian McNamara.


MiF*_*vil 9

请参阅"WCF中的超时及其默认值" http://blogs.msdn.com/b/hongmeig/archive/2010/03/06/timeouts-in-wcf-and-their-default-values.aspx

绑定超时 - SendTimeout,ReceiveTimeout,OpenTimeout和CloseTimeout.它们可以通过配置或Binding上的代码轻松设置.这些的默认值是1分钟.

ServiceHost具有OpenTimeout和CloseTimeout.OpenTimeout的默认值为1分钟,CloseTimeout的默认值为10秒.

客户端通道超时.有一个OperationTimeout,你可以通过将频道转换为IContextChannel来设置它.默认值为1分钟.tcpout上的Ttimeout,称为ChannelInitializationTimeout,其默认值为5秒.

ASPNET.有关机超时,就像服务主机关闭超时一样,默认为90秒.ExecutionTimeout,就像我们的操作超时一样,默认为110秒.