件名は自明です。私は開発環境と本番環境を持っています。開発環境 私のローカルホストマシンです。何か問題が発生した場合 (エラーが発生した場合、または論理的な矛盾が生じた場合) に応答ステータス コードを 500 に設定し、Json-answer を返すアクション メソッドをコントラーに作成しました。私の一般的な方法は次のようになります。
[HttpPost]
public ActionResult DoSomething(int id)
{
try
{
// some useful code
}
catch(Exception ex)
{
Response.StatusCode = 500;
Json(new { message = "error" }, JsonBehaviour.AllowGet)
}
}
本番環境のクライアント側。このようなエラーが発生した場合、ajax.response は期待される JSON ではなく、HTML コードのように見えます。
このことを考慮:
<div class="content-container">
<fieldset>
<h2>500 - Internal server error.</h2>
<h3>There is a problem with the resource you are looking for, and it cannot be displayed.</h3>
</fieldset>
</div>
フィルター コンテキストはオプションではありません。IISまたはweb.configの問題だと思います。
解決策: Global.asax に BeginRequest
を追加することにしTrySkipIisCustomErrors
ました。これにより、アプリケーションの各メソッドの問題が解決されます。