2011-06-20 12 views
0

エラーコードを示すMVC AJAXメソッドからプレーンテキストを返そうとしています。これは私の開発マシンで正常に動作していますが、サーバ(Win2008 R2)にデプロイすると、指定したテキストではなく、AJAX呼び出しからerror.responseTextに500.htmページのHTMLが戻ってきます。なぜ私は意図したプレーンテキストを取り戻さないのでしょうか?500サーバーエラーMVCから返されるHTMLプレーンテキストが指定されたときにAJAX呼び出し

ここに私のコントローラのロジックを処理するエラーがあります。

protected override void OnException(
     ExceptionContext filterContext 
     ) 
    { 
     try 
     { 
      Error error = ControllerCommon.ProcessException(filterContext); 

      // return error 
      filterContext.Result = HandleError(error.Type); 
      filterContext.ExceptionHandled = true; 
     } 
     catch (Exception ex) 
     { 
      Logger.Instance.LogImportantInformation(ex.Message, 0, Constants.EventSourcePortal); 
     } 
    } 

    #endregion 

    #region Private Methods and Members 

    private ActionResult HandleError() 
    { 
     return HandleError(Error.ErrorType.Unknown); 
    } 

    private ActionResult HandleError(
     Error.ErrorType errorType 
     ) 
    { 
     // set return status code 
     HttpContext.Response.StatusCode = (int)HttpStatusCode.InternalServerError; 

     Logger.Instance.LogImportantInformation(((int)errorType).ToString(CultureInfo.InvariantCulture), 0, Constants.EventSourcePortal); 

     // return error type 
     return Content(((int)errorType).ToString(CultureInfo.InvariantCulture), "text/plain"); 
    } 

ここは、サーバーから返されるヘッダーです。

レスポンスヘッダ のCache-Controlのプライベート のContent-Typeがtext/htmlの サーバーMicrosoft-IIS/7.5 X-ASPNET-バージョン4.0.30319 X-PoweredのバイASP.NET 日月、2011年6月20日16:00:42 GMT コンテンツ長1208 要求ヘッダー ホストpqompo2test01.dns.microsoft.com ユーザーエージェントMozilla/5.0(Windows NT 6.1; WOW64; rv:2.0.1)Gecko/20100101 Firefox/4.0。 1 アクセプタ符号化gzip、d アクセプト符号化gzip、d eflate アクセプタンス文字セットISO-8859-1、utf-8; q = 0.7、*; q = 0.7 キープアライブ115 接続キープアライブ コンテンツタイプapplication/x-www-form-urlencoded;文字セット= UTF-8 X-要求-でのXMLHttpRequest リファラーhttps://pqompo2test01.dns.microsoft.com/Incident/ListのContent-Length 330 クッキーMC1 = GUID = 111c287d88c64447a63719bb2c858981 & HASH = 7d28 & LV = 20114 & V = 3。 A = I &I = AxUFAAAAAACJCAAAMuSpPH1Citx6nZO0iHfvdA !! & CS = 116 | 9n002j21b03; WT_FPC = id = 131.107.0.73-1717525904.30146426:lv = 1308581948698:ss = 1308581948698; MUID = 7F438FBFEEE948D88DA06B04F6923159; MSID = Microsoft.CreationDate = 04/20/2011 16:45:49 & Microsoft.LastVisitDate = 06/20/2011 15:59:10 & Microsoft.VisitStartDate = 06/20/2011 15:59:10 & Microsoft.CookieId = 4c7552d0-5e75-4e5e-98b9-4ca52421a738 & Microsoft.TokenId = FFFFFFFFFFFF-FFFFFFFF-FFFFFFFFFFFF & Microsoft.NumberOfVisits = 27 & Microsoft.CookieFirstVisit = 1 & Microsoft.IdentityToken = AAの== & Microsoft.MicrosoftId = 0668 -8044-9161-9043; ANON = A = FA4FB528F204DDFA69239A4FFFFFFFFF & E = b4d & W = 4; NAP = V = 1.1 &E = af3 &C = hJtCCJq27admlaiwmdzvTmnAwIEVXv1jFR2I2bJ-gncMGQOJce96RQ & W = 4; mcI = Wed、27 Apr 2011 16:48:43 GMT; omn​​iID = fd752842_58d3_4833_9a0f_d0e1e3bbfef3; WT_NVR_RU = 0 = msdn:1 =:2 =; ASP.NET_SessionId = dbcqi222tehjorefcopchuzu; MS0 = 7fc23d65df4241c89554b502149ccc13; MICROSOFTSESSIONCOOKIE = Microsoft.CookieId = 94c8a34f-9184-4e10-84c5-2b9c43c7a962 & Microsoft.CreationDate = 06/20/2011 15:59:10 & Microsoft.LastVisitDate = 06/20/2011 15:59:10 & Microsoft.NumberOfVisits = 1 & SessionCookie。Id = 04DF98242DBD0730C9388487546F2F37; RPSMCA = FAAaARSsz90pZKmFSg5n0wbtR5MnQAldBwNmAAAEgAAACDNAEUimN1wb2AD%2Bp1PnEJUdd7n5VumQIQerCQYdD5IEd6ZCDEshkiTkvVl5a9eA6%2B9a0Os/1FpoqtvsGYMdWUUc98PUl5ZTo%2BFXAqxiZ9BL5D69OLCPsZEXitrZMulmKXFGQiAD5FqJY8JOOSJ1xptRwdkdrxGF8PuNit/Si87Ft7g4sF9vE878lMSx6TSmQq3nrurnBbdbUvDvwTKLoY0gAikOxJ7GmZoLw4kbzaLR/6/A/XSJFv%2BZ6uHsIwkMn6mndoZKfg3LLjDlCpozrHBlnKtgkn7yZXtd8Or420IXuPMUAF3gfp8VAkhKlVceTXpBv2h4gs6g。 RPSMCSA = FAAaARSsz90pZKmFSg5n0wbtR5MnQAldBwNmAAAEgAAACEdSXDQ0SIKI2AC/tM6y7CeHdaKVAab/N/4TLKkF5/01jGkXR0vA07MTvS5vhwgjCPMs4zke%2B0jnB1DqOV2vI4VqQ /%2BOIYh52QkaLREoD5L718AjEJOQdDVRRZiIB51CiYtS0P/kgIkEtfDa5yuTr3w6V2IKhy2%2B6wVrP/UqxsJR%2BZ1QmGxtjv7eQVGdIndrkPx5e9wFqj1qEcf9FNfH0/uajuaTFaNmi/3dQfWuEKxGpoHWNxgoMf8PHLVi2hqltqK47OloCGqQGLPQPx0PSg1K73FTZHhl3%2BuxyNqyWJumKsAUAGuMUzFhTPsQ7JdOSfY2SYyHeaZP。 RPSShare = 1; MSPAuth = 1NNm8kdmWAFrAuL2d8qOShxJKehL!CxEkCQvsgPdNGDqo0XFGsreQZ9GMVjiT1 * bHPlGcNVsyfbVO7h!eY32bCNY7Farp2grIyEgAFv7YgJqWZN2Q87 * LBZnZ0ASWmhPqe; MSPProf = 1ZN * xhGN9GRXSO * HEmrISYo6cowSUbmxtIsYfqtHv !! VzEybb1I33 * BdWWJrz54tkO5BzS3eTprAXL1LO9ELLBziO8Sm8WTzkSbV * E6ECcX9N92 * AFiJztc4rlwCLQnMBhxlV0qzvlRN4dS1SajyzABZDNBTG * tdyqfnuP6jkSevAhuXYvnEuKZQKAF5fvgr4 oiBQ2KhnuH0 $!; RequestVerificationToken_Lw = TOS6XUQ + 17bDOxh2T75NhhFy2KIJP5BP9MetB7cAa4i68ZEHIEpgE7xwQhzid/YiZCm4GsbW2zsJjlIxkB1hrhVGoU ++ E1I5BP9X2PyKn0O8tic84cWNz8QRjLDcaAcF4iYEQQ ==。 prmrsdninc = 1

私は自分のWin7マシンでローカルに実行するとき、私は単に私が期待しているテキストを取得します。

+0

何のメッセージに戻って来て見に放火犯を使用してみてください500エラーページそれはいくつかの構文エラーや何かにあなたを手がかりになるかもしれません。ヘッダーと応答タブを確認し、表示内容を再投稿してください。 – Jordan

+0

私はサーバーから戻ってくるヘッダーを追加しました。私はエラーは表示されませんが、テキスト/プレーンの代わりにtext/htmlを返しています。私のWin7マシンで正常に動作します。 –

答えて

0

私は同じ問題を持っていました。これは、telerikコントロールで処理するためのテキストのみを含む500ページを返します。もちろん、私の開発マシンではこれが問題になり、適切なIISサーバーに公開されても失敗しました。

この

は私のためにそれを修正:

http://blog.janjonas.net/2011-04-13/asp_net-prevent-iis_75_overriding-custom-error-page-iis-default-error-page

概要:あなたのアクションで

Response.TrySkipIisCustomErrors = true; 

ラインを入れて入力し