【问题标题】:ASP .NET Web API throw new HttpResponseException always returns 500ASP .NET Web API 抛出新的 HttpResponseException 总是返回 500
【发布时间】:2018-09-20 17:31:25
【问题描述】:

我正在尝试这样做

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
        }
    }
}

谁能帮帮我?

【问题讨论】:

  • 为什么要混合 .net core 和经典的 asp.net?

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


【解决方案1】:

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

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

【讨论】:

  • 您用于访问操作的 URI 是什么?
  • 我打电话给这个:localhost:59580/GitTest我正在使用 swagger,这是我的 Startup.cs codeshare.io/adjoEe
  • @MMachado,假设您使用默认路由规则,则此操作的 URI 为 /Login/GitTest
猜你喜欢
  • 1970-01-01
  • 2012-09-13
  • 1970-01-01
  • 2014-11-30
  • 2015-06-22
  • 1970-01-01
  • 1970-01-01
  • 2021-12-03
  • 1970-01-01
相关资源
最近更新 更多