超时WCF服务
超时如何在WCF中工作? 我知道,例如,你可以configurationsendTimeout和receiveTimeout客户端绑定。 但是他们是如何工作的?
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秒。
除了那篇文章之外,还有在客户端定义的操作超时。 看到这个: