【发布时间】:2019-01-10 15:18:24
【问题描述】:
好的,这是场景:
客户端在 10:00:00 (H:M:S) 发送请求。该请求存储在 IIS 应用程序池 QUEUE 中,直到该请求有可用线程。线程被释放,应用程序池现在收到了它必须处理的请求。时间是10:00:15。
客户什么时候开始等待他的回应——在 10:00:00 或 10:00:15?
【问题讨论】:
标签: iis wsdl tcpclient dotnet-httpclient
好的,这是场景:
客户端在 10:00:00 (H:M:S) 发送请求。该请求存储在 IIS 应用程序池 QUEUE 中,直到该请求有可用线程。线程被释放,应用程序池现在收到了它必须处理的请求。时间是10:00:15。
客户什么时候开始等待他的回应——在 10:00:00 或 10:00:15?
【问题讨论】:
标签: iis wsdl tcpclient dotnet-httpclient
客户端超时时间从 10:00:00 开始。客户端不知道服务器内部发生了什么,甚至不知道网络延迟。它只知道何时发送请求以及何时收到响应(如果有的话)。
虽然platform-specific message handler level(SendTimeout、ReceiveHeadersTimeout、ReceiveDataTimeout)可能存在更精细的超时,但在符合 .NET 标准的HttpClient 实现上定义的Timeout 是端到端的结尾。每Microsoft:
HttpClient.Timeout 属性旨在完全符合您的要求 称为 99% 的情况:端到端超时,之后 请求过期。 WinHttpHandler API 旨在提供一个 对更高级场景的开发人员进行更深入的控制。持有 出于这个目的,我们对该类型有更细粒度的超时,因为 我们过去曾收到过要求控制权的开发人员请求 在请求的特定阶段。
【讨论】: