【问题标题】:What happens to request in Web API controller when HttpClient times out?当 HttpClient 超时时,Web API 控制器中的请求会发生什么?
【发布时间】:2015-07-16 05:27:08
【问题描述】:

我试图了解当发送请求的 HttpClient 在服务实际完成处理并发回响应之前实际超时时,基于 Web API 的服务控制器接收到的请求会发生什么情况。

【问题讨论】:

    标签: c# timeout asp.net-web-api dotnet-httpclient


    【解决方案1】:

    发生的情况是HttpClient 将关闭底层连接并抛出TaskCancelledException。异常StatusCode 将表明已经超时。

    另一方面,在 WebAPI 方面,会注意到客户端断开连接并将其设置为 HttpResponse.ClientDisconnectedToken(类型为 CancellationToken)取消。更多关于 here

    【讨论】:

    • 如果 HttpClient 超时,则抛出 TaskCancelledException
    • @DarrelMiller 你是对的。将其与WebClient 混合在一起。固定。
    【解决方案2】:

    增加HttpClient.Timeout 属性的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-24
      • 2014-08-26
      • 1970-01-01
      • 2017-03-24
      • 1970-01-01
      • 1970-01-01
      • 2011-12-10
      • 2014-08-15
      相关资源
      最近更新 更多