私はASP .NET vNextで厄介な問題があります。より具体的には、MVC。ここでASP .NET vNext MVCはパイプラインで次へと引き渡しませんか?
は私の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();
});
}
私はに実行している問題は非常に簡単です:要求パイプライン内の最後のミドルウェアは、常に(app.UseMvc後に呼び出されません。 )。実際、私がそれから作ることができる唯一の一貫性は、新しいセッション(またはCTRL + F5)の開始時に.SaveCookie()が呼び出されることだけです。
私のミドルウェアが常に実行されているわけではない韻や理由はありますか?
すごいです!本当にありがとう!これにより、この問題は完全に解決されました。 –
RC2のアップデートとして、このメソッドはOnStarting()と呼ばれるようになりました。 –