asp.net core webapi 注册MVC时异常处理

在创建asp.net core webapi,注册使用MVC服务时遇到了点问题
如下:
直接注册MVC,并在管道内配置中间件时有警告

在这里插入图片描述
在这里插入图片描述

查询资料后发现是:
在 ASP.NET Core 3.0 UseMvc中UseMvcWithDefaultRoute通过或使用 MVC 需要显式选择加入Startup.ConfigureServices。 这是必需的,因为 MVC 必须知道它是否可以在初始化期间依赖于授权和 CORS 中间件。 如果应用程序尝试使用不受支持的配置,则会发出警告。
微软官方建议使用以下方法注册MVC:
如果应用需要旧IRouter支持,请使用EnableEndpointRouting中Startup.ConfigureServices的以下任一方法禁用

services.AddMvc(options => options.EnableEndpointRouting = false);


services.AddControllers(options => options.EnableEndpointRouting = false);


services.AddControllersWithViews(options => options.EnableEndpointRouting = false);


services.AddRazorPages().AddMvcOptions(options => options.EnableEndpointRouting = false);

之后就可以在管道内正常的注册中间件了
注意顺序, 应该在处理异常的middleware后边调用app.UseMvc(), 所以处理异常的middleware可以在把request交给mvc之间就处理异常, 更重要的是它还可以捕获并处理返回MVC相关代码执行中的异常.

微软官方文档:
https://docs.microsoft.com/zh-cn/aspnet/core/migration/22-to-30?view=aspnetcore-3.1&tabs=visual-studio#use-mvc-without-endpoint-routing

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值