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