超时WCF服务

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

MSDN将sendTimeout描述为:

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

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

客户端:

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

服务器端:

  • 发送,打开和closures超时相同的客户端(对于callback)。
  • ReceiveTimeout由ServiceFramework层用来初始化会话空闲超时。

来源是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。 它们可以通过绑定上的configuration或代码轻松设置。 这些默认值是1分钟。

ServiceHost有OpenTimeout和CloseTimeout。 OpenTimeout的默认值是1分钟,CloseTimeout的默认值是10秒。

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

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

除了那篇文章之外,还有在客户端定义的操作超时。 看到这个:

http://final-proj.blogspot.com/2009/09/wcf-timeouts.html