ASP.NET + Azure 400错误请求不返回JSON数据

Jac*_*ker 24 asp.net-mvc azure

我的ASP.NET MVC控制器中有一个操作,当无效参数传递给操作时,返回带有400 Bad Request的JSON数据.

[HttpDelete]
public ActionResult RemoveObject(string id) {
    if(!Validate(id)) {

        Response.StatusCode = (int)HttpStatusCode.BadRequest;
        return Json(new { message = "Failed", description = "More details of failure" });
    }
}
Run Code Online (Sandbox Code Playgroud)

这可以在IIS下运行,也可以在Visual Studio中启动开发测试服务器.将项目部署到Azure后,400 Bad Request将返回,而不会返回JSON数据.内容类型已更改为邮件的"text/html"和"Bad Request".

为什么Azure下的行为不同?

dcc*_*lie 53

将以下条目添加到"web.config".

<system.webServer>
  <httpErrors existingResponse="PassThrough"/>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

这将允许HTTP错误通过非骚扰.

  • 亲爱的上帝.我花了最近12个小时试图弄清楚为什么我的AJAX请求不起作用.我尝试了从添加CORS支持到调整Express.js应用程序中的代理设置的所有内容.这是确保JSON正确返回的简单解决方案. (10认同)
  • 启用此功能是否存在任何安全问题? (4认同)
  • 我在运行 IIS 8 的 Amazon AWS 实例上遇到了同样的问题。这解决了我遇到的问题并让我发疯。 (2认同)
  • 为什么这不是默认值?默认情况下,Web API似乎可以通过。 (2认同)