检查中间件调用的顺序是否正确,确保在调用下一个中间件之前调用 await next() 方法。
示例代码:
public class SampleMiddleware1
{
private readonly RequestDelegate _next;
public SampleMiddleware1(RequestDelegate next)
{
_next = next;
}
public async Task InvokeAsync(HttpContext context)
{
...
// 调用下一个中间件之前,一定要加上 await next() 方法
await _next(context);
}
}
public class SampleMiddleware2
{
private readonly RequestDelegate _next;
public SampleMiddleware2(RequestDelegate next)
{
_next = next;
}
public async Task InvokeAsync(HttpContext context)
{
...
// 调用下一个中间件之前,一定要加上 await next() 方法
await _next(context);
}
}
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseMiddleware<SampleMiddleware1>();
app.UseMiddleware<SampleMiddleware2>();
}
}