Azure上的不同错误响应正文

时间:2015-03-27 12:58:24

标签: json asp.net-mvc azure asp.net-mvc-5

我有一个使用JSON返回错误的操作:

public JsonResult Error()
{
    this.Response.StatusCode = (int)HttpStatusCode.BadRequest;
    return this.Json(new { error = "some error" }, JsonRequestBehavior.AllowGet);
}

当我在本地测试时,响应的主体是:

{"error":"some error"}

正如预期的那样,但在发布到Azure时,响应正文是

Bad Request

为什么会出现不同的行为?如何使用JSON回复Azure?

2 个答案:

答案 0 :(得分:0)

尝试通过Response.TrySkipIisCustomErrors告诉IIS不要使用它的错误页面。

结果代码如下:

public JsonResult Error()
{
    this.Response.StatusCode = (int)HttpStatusCode.BadRequest;
    this.Response.TrySkipIisCustomErrors = true;
    return this.Json(new { error = "some error" }, JsonRequestBehavior.AllowGet);
}

答案 1 :(得分:0)

简单地说

<system.webServer>
  <httpErrors existingResponse="PassThrough" />
</system.webServer>
web.config文件中的

我通过this blog post找到了解决方案。