好的,这是场景:
客户在10:00:00(H:M:S)发送请求。该请求将存储在IIS应用程序池QUEUE中,直到该请求有可用线程为止。线程被释放,应用程序池现在接收到它必须处理的请求。时间是10:00:15。
客户何时开始等待其响应-在10:00:00或10:00:15?
答案 0 :(得分:1)
客户端超时时间始于10:00:00。客户端不知道服务器内部发生了什么,甚至都不知道网络延迟。它所知道的就是何时发送请求以及何时接收响应(如果有的话)。
尽管platform-specific message handler level(SendTimeout
,ReceiveHeadersTimeout
,ReceiveDataTimeout
)处的粒度超时可能更多,而Timeout
在.NET Standard兼容上定义HttpClient
的实现是端到端的。根据{{3}}:
HttpClient.Timeout属性旨在完全符合您的要求 指99%的情况:端到端超时,之后 请求过期。 WinHttpHandler API旨在提供一个 对开发人员具有更高级方案的更深入的控制。持有 出于这种意图,我们对该类型的超时有了更细微的超时 过去我们收到了要求控制的开发人员请求 在请求的特定阶段。