12

件名は自明です。私は開発環境と本番環境を持っています。開発環境 私のローカルホストマシンです。何か問題が発生した場合 (エラーが発生した場合、または論理的な矛盾が生じた場合) に応答ステータス コードを 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ました。これにより、アプリケーションの各メソッドの問題が解決されます。

4

3 に答える 3

0

IISapplication/jsonが有効な として扱うように設定されていますmime-typeか? IIS マネージャーのサーバーのプロパティで確認し、[MIME タイプ] をクリックします。json がない場合は、[新規] をクリックし、拡張子に「JSON」、MIME タイプに「application/json」と入力します。

于 2013-05-16T08:38:27.033 に答える