2012-04-09 97 views
1

我試圖實現顯示自定義錯誤消息此接受的解決方案:MVC3自定義錯誤和HTTP狀態

https://stackoverflow.com/a/5229581/141172

然而,IE9始終顯示該解決方案的通用500錯誤消息。 Google Chrome會顯示我的自定義錯誤消息。

此更改:

Response.StatusCode = 200; // don't return: 500 

導致IE9和Chrome預期的行爲。

然而,它似乎並沒有在所有合理的改變HTTP狀態代碼只是爲了讓IE9在這項工作(一,網站監控解決方案將不會看到500,如果事情失敗)。

如何,我可以添加自定義錯誤處理的方式,將在所有瀏覽器,在不改變HTTP狀態代碼?

回答

3

顯然,IE會,如果它是大於512個字節較小忽略自定義錯誤頁。解決方法是確保頁面至少有513字節的數據。另外,如果您使用gzip壓縮,則在壓縮後它必須超過512個字節。

+0

爲了測試這個,我在代碼中添加了以下內容:'拋出新的IReallyWantToFinallyLikeIEButCantException(「Why,oh why!」);' – 2012-04-09 05:26:17

+1

注意:Wikipedia聲稱這種行爲早於IE7。不過,我已經在IE9中證實了它。 http://en.wikipedia.org/wiki/HTTP_404 – 2012-04-09 05:29:33

+0

啊,我只是要發佈約512個字節,但不知道這是否是或不是仍然是一個問題。感謝您確認Eric。全部爲+1的輪次) – 2012-04-09 05:56:24