asp.net 8 中的 RequestTimeoutsMiddleware

💡 原文中文,约7600字,阅读约需19分钟。
📝

内容提要

.NET 8中的RequestTimeoutsMiddleware可方便处理request超时,提供全局/特定endpoint超时、禁用超时、使用attribute设置超时等示例。需使用HttpContext.RequestAborted触发超时。

🎯

关键要点

  • .NET 8 引入了 RequestTimeoutsMiddleware,用于处理请求超时。
  • 可以配置全局超时、特定端点超时、禁用超时等。
  • 使用 HttpContext.RequestAborted 来触发超时。
  • 全局超时示例中,默认超时设置为 1 秒。
  • 可以为特定端点设置超时,优先级高于全局设置。
  • 支持通过 policy 配置超时和自定义响应。
  • 可以通过 attribute 设置超时,适用于 Minimal API 和 ASP.NET Controller。
  • 可以禁用特定端点的超时,默认情况下没有超时。
  • 使用 IHttpRequestTimeoutFeature.DisableTimeout() 方法可以禁用超时。
  • 处理逻辑中需使用 CancellationToken,以确保超时功能生效。
➡️

继续阅读