请问有人能够解释一下服务器端和客户端超时配置的区别吗?例如,如果客户端将sendTimeout设置为5分钟,而服务器上的配置设置为1分钟,会发生什么情况?客户端因为它启动了通信,所以优先级更高吗?
感谢您的帮助!
请问有人能够解释一下服务器端和客户端超时配置的区别吗?例如,如果客户端将sendTimeout设置为5分钟,而服务器上的配置设置为1分钟,会发生什么情况?客户端因为它启动了通信,所以优先级更高吗?
感谢您的帮助!
我想我明白了,看一下http://omsite.blogspot.com/2008/04/playing-with-wcf-nettcpbinding-timeouts.html。
当客户端发起对服务器的调用时,客户端的sendTimeout和服务器端的receiveTimeout生效。在服务器到期之前,客户端必须发送(或推送)所有数据。在客户端到期之前,服务器必须完成其操作并将结果返回给客户端。
如果角色被颠倒,也就是说服务器正在向客户端打开通信(如回调等),则服务器上的sendTimeout和客户端上的receiveTimeout会发挥作用。
还有OpenTimeout和CloseTimeout,它们控制通道连接建立超时,并在更低的通道级别(如线路套接字等)工作。
在测试中,您所要求的场景。请求的超时时间为5分钟,这是在客户端中定义的。
客户端超时
SendTimeout - 用于初始化OperationTimeout,它管理整个发送消息的过程,包括为请求/回复服务操作接收回复消息。当从回调合同方法发送回复消息时,此超时也适用。
ReceiveTimeout - 不使用
服务端超时
SendTimeout与客户端相同
ReceiveTimeout - 由服务框架层用于初始化会话空闲超时,控制会话在超时之前可以空闲多长时间。
receiveTimeout
在客户端中被忽略。在服务器上,它用于确定基于会话绑定的闲置时间。 - gravidThoughts