【问题标题】:Azure Service App [Mobileservice] - Custom error responseAzure 服务应用 [Mobileservice] - 自定义错误响应
【发布时间】:2017-05-07 06:36:05
【问题描述】:

我一直在开发一个应用程序,有时在我的编码过程中我收到 500 内部服务器错误,没有内容,这并不是它应该显示的内容。我写了一个代码来测试控制器中的错误响应如下:

    [HttpGet]
    [Route("TryCatch")]
    public IHttpActionResult TestCatch()
    {
        try
        {
            object obj = null;
            int i = (int) obj;
            return Ok();
        }
        catch (Exception e)
        {
            return InternalServerError(e);
        }
    }

当我在本地尝试此操作时,我确实收到了有关我希望的错误的信息。至于在生产中,我所看到的只是(在邮递员中){ "message": "发生错误。" } 和状态码。

我环顾四周,发现了我认为可以解决我的问题的方法:Internal Server Error - Azure App Service Custom Controller,但事实并非如此。

在 web.config 中添加 <httpErrors errorMode="Custom" defaultResponseMode="passThrough"><customErrors mode="On"/> 或任何内容也无济于事。

感谢任何帮助!

【问题讨论】:

    标签: azure azure-mobile-services azure-api-apps azure-app-api


    【解决方案1】:

    请将自定义错误模式更改为关闭而不是打开。

    <customErrors mode="Off"/>
    

    并将 IncludeErrorDetailPolicy 属性更改为 Always in WebApiConfig.cs 文件(Azure 移动服务)或 Startup.cs 文件(Azure 移动应用程序)。

    config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
    

    之后,我可以从 exceptionMessage 属性中获取详细的异常消息。

    {"message":"An error has occurred.","exceptionMessage":"Object reference not set to an instance of an object.","exceptionType":"System.NullReferenceException","stackTrace":""}
    

    【讨论】:

    • 谢谢先生! config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;那部分解决了我的问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 2021-09-24
    • 2012-05-22
    • 2016-09-23
    相关资源
    最近更新 更多