asp.net-core – ASP .NET vNext MVC没有传递给下一个管道?
发布时间:2020-12-16 03:29:47 所属栏目:asp.Net 来源:网络整理
导读:我对ASP .NET vNext有一个麻烦的问题;更具体地说,MVC. 这是我的Startup.cs文件的简化版本: public void ConfigureServices(IServiceCollection services){ // Add MVC services to the services container. services.AddMvc(); services.AddScopedFoo();}pu
我对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()之后,请求管道中的最后一个中间件并不总是被调用.事实上,我可以做出的唯一一致性是我只看到.SaveCookie()在新会话开始时被调用(或CTRL F5). 有没有押韵或理由为什么我的中间件并不总是被执行? 解决方法
如果请求由MVC处理,那么它会将响应发送回客户端,而不是执行管道中的下一个中间件.
如果您需要在您的情况下对响应进行一些后处理,那么您需要在MVC中间件之前注册它. 此外,由于MVC可能正在编写响应,因此修改响应标头(因为它们首先在主体之前发送到客户端)将为时已晚.因此,您可以使用OnSendingHeaders回调来获取修改标头的机会. 以下是一个例子: app.Use(async (context,next) => { context.Response.OnSendingHeaders( callback: (state) => { HttpResponse response = (HttpResponse)state; response.Cookies.Append("Blah","Blah-value"); },state: context.Response); await next(); // call next middleware ex: MVC }); app.UseMvc(...) { .... } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET – 在postBack之后将屏幕滚动到之前的位置
- asp.net-mvc-3 – 如何注入依赖项到global.asax.cs
- asp.net“记住我”的cookie
- asp.net-mvc-3 – 如何让IIS Express使用64位第三方DLLS启动
- asp.net-mvc-4 – Resharper无法解析主页中的部分视图
- asp.net – SQL Server集成身份验证模式
- asp.net-mvc – ASP.Net MVC风格包不包括大多数文件
- ASP.NET上的.cshtml razor文件转换
- asp.net-mvc-5 – MVC5 RadioButtonFor模型属性未正确绑定
- asp.net-mvc-3 – 如何在自定义编辑器模板中获取模型的字段
推荐文章
站长推荐
- asp.net-mvc – mvc默认期限后的会话超时(20分钟
- asp.net – 从WebMethod访问函数背后的代码
- asp.net – 您在哪里存储数据库连接字符串?
- asp.net-mvc-3 – SignalR依赖注入问题
- asp.net-mvc-3 – ASP.NET MVC 3从控制器返回.cs
- asp-classic – ADODB.Stream错误’800a0bbc’写
- asp.net-mvc – 使用依赖注入来组织ASP.Net MVC解
- asp.net-mvc-4 – 将ASP.NET Core与旧版.Net Fra
- asp.net-mvc – 如何从ASP.NET MVC的部分视图中获
- asp.net-mvc – MVC 4 – 更优雅的方式编辑项目的
热点阅读