ASP.NET Core MVC 返回405错误变成404

问题描述 投票:0回答:1

我创建了

AuthorizeSessionAttribute
来处理我的网络应用程序中的权限。问题是当我不授权访问 API 并且我这样做时:

context.Result = new StatusCodeResult((int)HttpStatusCode.MethodNotAllowed);

我也尝试过使用

Unauthorized
但是,在浏览器中我可以看到响应始终是 404。

可能是什么问题?我没有更多信息了。如果我获得许可,我会收到代码 200 作为响应。

c# .net-core asp.net-core-mvc
1个回答
-3
投票

在 .NET Core MVC 中处理 405 变成 404

您似乎在

AuthorizeSessionAttribute
(405 或 401)中设置了正确的状态代码,但收到了 404 响应。造成这种情况的可能原因有以下几个:

1.路由问题

如果请求 URL 与您的

Startup.cs
或控制器操作中定义的任何路由不匹配,它将返回 404 错误。确保为 API 操作正确设置路由。如果 API 路径或 HTTP 方法配置不正确,则可能会发生这种情况。

2.自定义错误页面处理

有时,自定义错误处理中间件或 IIS(如果您托管在 IIS 中)可能会拦截 405 状态代码并将其转换为 404。您可以检查 Web 服务器(如 IIS)或

 中是否有自定义错误处理Startup.cs
可能正在修改响应。

IIS:

您可能在

web.config
或 IIS 设置中进行了配置,将错误状态代码映射到 404。

ASP.NET Core 中间件:

您可能有一个异常处理中间件,可以捕获所有异常或错误并将其替换为 404。查看您的

Startup.cs
是否有可能干扰响应的中间件,例如
UseExceptionHandler()
UseStatusCodePages()

© www.soinside.com 2019 - 2024. All rights reserved.