首页 > 解决方案 > ASP .NET Web API 抛出新的 HttpResponseException 总是返回 500

问题描述

我正在尝试这样做

throw new HttpResponseException(HttpStatusCode.Unauthorized); // 401

但这总是返回 500(内部服务器错误)。

示例代码:

using System.Net;
using Microsoft.AspNetCore.Mvc;
using System.Web.Http;


namespace Gral_WebAPI.Controllers
{
    [Produces("application/json")]
    public class LoginController : ApiController
    {
        [Microsoft.AspNetCore.Mvc.HttpGet]
        [Microsoft.AspNetCore.Mvc.Route("[action]")]
        public string GitTest()
        {
            throw new HttpResponseException(HttpStatusCode.Unauthorized); // 401
        }
    }
}

任何人都可以帮助我吗?

标签: c#asp.netasp.net-web-api

解决方案


你可以return StatusCode(401);改用。您应该避免使用异常来控制应用程序的流程。

您是否有任何中间件拦截异常并将状态码覆盖为 500?


推荐阅读