In C# ASP.NET spielt die Reihenfolge der Middleware-Anwendung eine Rolle?Kann ich Middleware in beliebiger Reihenfolge auf die App anwenden?
Die folgenden 2 Code-Schnipsel:
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();
}
...
}
und dieses
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");
}
...
}
Gibt es einen Unterschied? Ich stelle mir vor, dass, wenn diese Middleware ähnlich wie Python-Dekoratoren oder nur Pipe von Funktionen funktioniert, die etwas tun und die Ergebnisse an die nächste Funktion weitergeben, dann könnte es von Bedeutung sein.
Nun, woher weiß ich, was nach was kommen soll? Ich wollte Middleware gruppieren, die nur in der Entwicklungsumgebung funktionieren sollte, Middleware, die nur in der Produktionsumgebung funktionieren sollte, und gemeinsame Middleware in verschiedenen Methoden. – CrabMan
@crabman spezifische Middleware-Dokumente werden Ihnen sagen, ob die Bestellung zählt oder nicht und ob unsere Angelegenheiten, in welcher Reihenfolge Sie es konfigurieren sollten .. –