Подтвердить что ты не робот

ASP.NET MVC: странные символы на странице с ошибкой

Так как я загрузил обновленную версию приложения ASP.NET MVC 1 на сервер, Желтый экран смерти изменился на что-то например:

I�%&/m�{J�J��t�� [email protected]# Ig) * ЕВА] F @흼 {{;? N '\ FDL!? Jɞ ~ | "Ey ') = y6hͼhRLw | 2 = Ez < 7: 5 & л + Оу ��:� �T����W�v�<[��~2�g�2��?�ʋ�y�hYՋ������t� _N���M�l�����{�,��Xn���Q�}�����*g�������7�� ~� j'u > K {IW4 > Uw | = -fYzR -

При обращении к страницам с ошибками непосредственно на сервере через удаленный рабочий стол (Windows Server 2008 R2, IE8) IE даже пытается загрузить ответ, но получить сообщение об ошибке (окно сообщения).

Кто-нибудь сталкивался с этим раньше? Любая идея, как это решить?

Я также нашел этот вопрос, который, кажется, очень симлярный, но, к сожалению, на него сейчас не ответил: Приложение ASP.NET MVC, отображающее странные символы

4b9b3361

Ответ 1

Скорее всего, экран, который вы показываете, вызван кодировкой GZip в вашем коде. Вероятно, вы применяете Response.Filter к классу GZip/DeflateStream и намереваетесь кодировать ваш контент, но затем возникает ошибка, и ASP.NET очищает заголовки, но оставляет фильтр неповрежденным. В результате ваш контент кодируется GZip, но браузер не декодирует его, потому что заголовок Content-Encoding не установлен.

Чтобы исправить это, добавьте:

Response.Filter = null

в вашу процедуру Application_Error вверху, чтобы принудительно удалить фильтры Repsonse.

Еще одна вещь, которая может вас повредить, - OutputCaching содержимого GZipped. Если какое-либо OutputCaching применяется, убедитесь, что у вас есть опция VaryByCustom, позволяющая использовать разные типы кодирования (скорее всего, Gzip, Deflate).

+++ Рик ---