WCF超时时间 客户端 vs 服务器

10

请问有人能够解释一下服务器端和客户端超时配置的区别吗?例如,如果客户端将sendTimeout设置为5分钟,而服务器上的配置设置为1分钟,会发生什么情况?客户端因为它启动了通信,所以优先级更高吗?

感谢您的帮助!

2个回答

1

我想我明白了,看一下http://omsite.blogspot.com/2008/04/playing-with-wcf-nettcpbinding-timeouts.html

当客户端发起对服务器的调用时,客户端的sendTimeout和服务器端的receiveTimeout生效。在服务器到期之前,客户端必须发送(或推送)所有数据。在客户端到期之前,服务器必须完成其操作并将结果返回给客户端。

如果角色被颠倒,也就是说服务器正在向客户端打开通信(如回调等),则服务器上的sendTimeout和客户端上的receiveTimeout会发挥作用。

还有OpenTimeout和CloseTimeout,它们控制通道连接建立超时,并在更低的通道级别(如线路套接字等)工作。


这个答案中的链接已经失效。 - Dave Ziegler
是的,链接已经失效了。我找不到那篇文章:(。不过我在我的回答中概括了要点。 - Shreedhar Kotekar
@ShreedharKotekar 这是错误的。receiveTimeout 在客户端中被忽略。在服务器上,它用于确定基于会话绑定的闲置时间。 - gravidThoughts

0

在测试中,您所要求的场景。请求的超时时间为5分钟,这是在客户端中定义的。

客户端超时

SendTimeout - 用于初始化OperationTimeout,它管理整个发送消息的过程,包括为请求/回复服务操作接收回复消息。当从回调合同方法发送回复消息时,此超时也适用。

ReceiveTimeout - 不使用

服务端超时

SendTimeout与客户端相同

ReceiveTimeout - 由服务框架层用于初始化会话空闲超时,控制会话在超时之前可以空闲多长时间。

请参见https://learn.microsoft.com/en-us/dotnet/framework/wcf/feature-details/configuring-timeout-values-on-a-binding


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接