gpt4 book ai didi

c# - 我可以按任何顺序将中间件应用于应用程序吗?

转载 作者:行者123 更新时间:2023-11-30 16:03:09 26 4
gpt4 key购买 nike

在 C# ASP.NET 中,中间件应用程序的顺序重要吗?

以下 2 个代码片段:

public class Startup
{
...
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
setUpMVCRoutes(app);
app.UseSwaggerUi("foobar/api", "/foobar/v3/api.json");
app.UseSwaggerGen("foobar/{apiVersion}/api.json");
app.UseDefaultFiles();
app.UseIISPlatformHandler(options => options.AuthenticationDescriptions.Clear());
app.UseStaticFiles();
app.UseIdentity();
app.UseCookieAuthentication();
}
...
}

还有这个

public class Startup
{
...
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseIdentity();
app.UseCookieAuthentication();
app.UseIISPlatformHandler(options => options.AuthenticationDescriptions.Clear());
app.UseDefaultFiles();
app.UseStaticFiles();
setUpMVCRoutes(app);
app.UseSwaggerGen("foobar/{apiVersion}/api.json");
app.UseSwaggerUi("foobar/api", "/foobar/v3/api.json");
}
...
}

有区别吗?我想,如果这个中间件的工作方式类似于 python 装饰器,或者只是函数的管道,它会执行某些操作并将结果传递给下一个函数,那么它可能很重要。

最佳答案

它与 ASP.NET 无关,但与 OWIN 托管实现有关。

订单很重要。例如,如果您注册了一个应该在任何其他中间件之后监听错误的中间件,则有可能无法记录某些错误。

这只是一个假设案例,但它可以很好地提示您如果更改中间件注册的顺序,其他场景可能会如何工作。

or just pipe of functions which do something and pass the results to the next function, then it might matter.

就是这样!这就是订单很重要的原因。

关于c# - 我可以按任何顺序将中间件应用于应用程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36793561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com