Cra*_*Man 5 c# asp.net middleware
在 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();
}
...
}
Run Code Online (Sandbox Code Playgroud)
和这个
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");
}
...
}
Run Code Online (Sandbox Code Playgroud)
有什么区别吗?我想,如果这个中间件的工作方式类似于 python 装饰器,或者只是执行某些操作并将结果传递给下一个函数的函数管道,那么它可能很重要。
它与 ASP.NET 无关,但与 OWIN 托管实现有关。
顺序很重要。例如,如果您注册一个应该在任何其他中间件之后侦听错误的中间件,则有可能无法记录某些错误。
这只是一个假设的案例,但它可以很好地提示您如果更改中间件注册的顺序,其他场景可能会如何工作。
或者只是执行某些操作并将结果传递给下一个函数的函数管道,那么这可能很重要。
就是这样!这就是为什么顺序很重要的原因。
| 归档时间: |
|
| 查看次数: |
2192 次 |
| 最近记录: |