30

ASP.NET MVCコントローラーに、無効なパラメーターがアクションに渡されたときに400BadRequestで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で、またはVisualStudioから起動された開発テストサーバーで完全に実行されます。プロジェクトがAzureにデプロイされた後、400BadRequestがJSONデータなしで返されます。メッセージのコンテンツタイプが「text/html」および「BadRequest」に変更されました。

Azureでの動作が異なるのはなぜですか?

4

1 に答える 1

63

次のエントリを「web.config」に追加します。

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

これにより、HTTPエラーが問題なく通過できるようになります。

于 2013-03-20T19:15:03.013 に答える