我有一个使用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?
答案 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找到了解决方案。