如何在.net core 2.0 route中对错误请求抛出404

时间:2018-04-20 07:08:25

标签: asp.net api routes asp.net-core-2.0

在我的启动文件中,我有以下代码

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
   // app.UseMvcWithDefaultRoute();
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    app.UseCors(builder => builder.AllowAnyOrigin()
                    .AllowAnyMethod()
                    .AllowAnyHeader()
                    .AllowCredentials()            
        );
    app.UseMvc();
    app.UseExceptionHandler();


    app.Run(async (context) =>
    {
        await context.Response.WriteAsync("Web API running!");
    });
}

我正在使用前端的角度,当来自UI .net核心的错误路由时,使用Web API运行消息发送状态200,这是不好的。 我想在遇到错误路线时抛出404.

1 个答案:

答案 0 :(得分:0)

发生这种情况的原因是因为MVC中间件在没有找到请求的任何路由时会将请求传递给下一个中间件。

因此请求会触及您编写的最后一个中间件"Web API running!"

你为什么需要那个?删除该中间件或至少可以将其配置为仅使用特定路径。

app.Map(new PathString("/monitor"), monitorApp =>
{
    monitorApp.Run(async (context) =>
    {
        await context.Response.WriteAsync("Web API running!");
    });
});