Mam kłopotliwy problem z ASP .NET vNext; dokładniej, MVC.ASP .NET vNext MVC nie przekazuje do następnego w potoku?
Oto uproszczona wersja mojego pliku Startup.cs:
public void ConfigureServices(IServiceCollection services)
{
// Add MVC services to the services container.
services.AddMvc();
services.AddScoped<Foo>();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerfactory)
{
app.Use(async (context, next) =>
{
await context.RequestServices.GetService<Foo>().Initialize(context);
await next();
});
// Add MVC to the request pipeline.
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller}/{action}/{id?}",
defaults: new { controller = "Home", action = "Index" });
});
// Time to save the cookie.
app.Use((context, next) =>
{
context.RequestServices.GetService<Foo>().SaveCookie();
return next();
});
}
Problem używam do jest bardzo prosta: Ostatni middleware na żądanie rurociągu nie zawsze się nazywa po app.UseMvc (). W rzeczywistości jedyną konsekwencją, jaką mogę z tego wyciągnąć, jest to, że widzę tylko .SaveCookie() na początku nowej sesji (lub CTRL + F5).
Czy istnieje rym lub przyczyna, dla której moje oprogramowanie pośrednie nie zawsze jest wykonywane?
Awesome! Dziękuję bardzo! To całkowicie rozwiązało problem. –
Jako aktualizacja dla RC2, metoda nazywa się teraz OnStarting(). –