【发布时间】:2020-05-29 01:37:14
【问题描述】:
为什么会按预期工作:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseRequestTimeoutMiddleware();
app.UseExceptionHandlingMiddleware();
app.UseHttpsRedirection();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
但是这不是:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseHttpsRedirection();
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
app.UseRequestTimeoutMiddleware();
app.UseExceptionHandlingMiddleware();
}
在第二种情况下,InvokeAsync 永远不会被调用,这就是我的意思是不起作用。
【问题讨论】:
-
“InvokeAsync”,哪个 InvokeAsync?
-
@LasseV.Karlsen .net 核心的每个自定义中间件都有一个“Invoke”或“InvokeAsync”方法。这是一个众所周知的约定:docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware/…
标签: c# asp.net-core middleware