在Asp.net Core的控制器动作中,如果请求的正文(body)比较大,可能会导致控制器动作的超时问题。解决这个问题的一个简单方法是可以使用超时选项来设置控制器动作的超时时间。一般来说,可以通过在控制器的类中使用[Timeout]特性,或通过在startup.cs中的中间件中启用RequestTimeout选项来实现。
示例代码:
[Timeout(5000)] // 设置超时时间为5秒 [HttpPost] public ActionResult MyAction([FromBody] MyModel model) { //... }
或者在Startup.cs的Configure()方法中添加以下配置:
app.Use(async (context, next) => { context.Request.Body.Timeout = TimeSpan.FromSeconds(5); await next.Invoke(); });
上一篇:ASP.NETCore从错误的项目发布appsettings.json文件
下一篇:ASP.NETCorecontrolleractiontakes~1secondbutrequeststaking10+seconds