超时WCF服务如何工作?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (21)

超时如何在WCF中工作?我知道例如你可以为客户端绑定配置sendTimeoutreceiveTimeout。但他们是如何工作的?

MSDN将sendTimeout描述为:

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

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

提问于
用户回答回答于

客户端:

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

服务器端:

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

来源是MSDN论坛上的Brian McNamara

用户回答回答于

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

绑定超时 - SendTimeout,ReceiveTimeout,OpenTimeout和CloseTimeout。它们可以通过绑定上的配置或代码轻松设置。这些默认值是1分钟。 ServiceHost具有OpenTimeout和CloseTimeout。OpenTimeout的默认值为1分钟,CloseTimeout的默认值为10秒。 客户端频道超时。有一个OperationTimeout,你可以通过将频道转换为IContextChannel来设置它。这个默认值也是1分钟。Tcp传输上的Ttimeout称为ChannelInitializationTimeout,其默认值为5秒。 ASPNET。有关机超时,就像服务主机关闭超时一样,默认为90秒。ExecutionTimeout,就像我们的操作超时一样,默认值是110秒。

扫码关注云+社区