超时WCF服务

时间:2008-10-23 13:43:05

标签: wcf configuration timeout wcf-binding

超时如何在WCF中运行?例如,我知道您可以为客户端绑定配置 sendTimeout receiveTimeout 。但他们是如何运作的?

MSDN将 sendTimeout 描述为:

  

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

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

3 个答案:

答案 0 :(得分:61)

客户方:

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

服务器端:

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

来源为Brian McNamara on MSDN forums

答案 1 :(得分: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分钟。关于tcp传输的Ttimeout,叫做   ChannelInitializationTimeout,默认值为5秒。

     

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

答案 2 :(得分:4)

除了该帖子上的内容之外,还有客户端定义的操作超时。见:

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