2013-03-20 79 views
21

當我的ASP.NET MVC控制器有一個操作會返回帶有400錯誤請求的JSON數據,當無效參數傳遞給操作時。ASP.NET + Azure 400錯誤請求不會返回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" }); 
    } 
} 

這工作完全在IIS下或從Visual Studio推出的開發測試服務器上運行。將項目部署到Azure後,400 Bad Request會返回而不帶有JSON數據。內容類型已更改爲「text/html」和「錯誤請求」。

爲什麼Azure下的行爲不同?

回答

45

將以下條目添加到「web.config」中。

<system.webServer> 
    <httpErrors existingResponse="PassThrough"/> 
</system.webServer> 

這將允許HTTP錯誤通過un-molested。

+4

是否有任何安全問題關聯到啓用? – 2013-08-19 13:48:47

+7

親愛的神。我只花了最近12個小時試圖弄清爲什麼我的AJAX請求不起作用。我嘗試了一切,從添加CORS支持到在我的Express.js應用中調整代理設置。這是確保JSON得到正確返回的簡單解決方案。 – 2014-02-27 02:25:02

+0

我在運行IIS 8的Amazon AWS實例上遇到同樣的問題。這解決了我遇到的問題,並且正在驅動我瘋狂。 – mcdrummerman 2015-06-09 06:31:21

相關問題