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,以确保超时功能生效。
➡️