/ASP.NET MVC 3でActionFilterAttributeを収縮不全を収縮させる、私は完全なページを取得します下に見られるように不器用です。 GZIP /私はgzipで興味深い問題がある
{{; N」 \\ ɞ ɞ ɞ 〜〜| | """ )))))= 6 U + _x-: TWV < [〜2G2ʋyhYՋトン? _N M l { 、 Xn Q } *g 7 〜
I�%&/m�{J�J��t��
$ @ F iGに#)* EVE] @흼�j'u>K�{_��IW4�>�U�w�|=-fYzR-�������|��<&�o�Z()*�S!U��k�g�������j��.����b}��ή�9X/��J�Iն��Q���z�i�n�-g٤���ݞ��Y^����H�8/��k�}]7�ǜ@�{|�g��wUd�O����죫y���o-�����ݏ��� �ZHv,�d]��١�>o3�=�3x�7MN�����������Ow���w�.o��φ�<؟M����;���vg���A>��䋟{YޟN�����Φ�$p>q����/�!�y��9�2��two������?������Ӈ���n�9�r�^����!������{���ag�?\1*c�?!�bي
?xIuf ?{ 'Pの$のV & =#sl_0wss 廌⼽⼽ r ! {k \ 7M ( 4 ߛ V < Ct1hOIy {j]は D'pを< $,�'M��r{-�}��CF�؛�����A��9��[�½�� �! 2�� �:��!��{�t�;�߇'y��M��+�M^#x^\����Q��jM�l��?(�]� ��IZ�ݟ[����+4#"�:�X����m�������dv>������iL�̀I |�fL�TU��ho�� �{L��_t��5�o?���h�O�UY]#�u�[���G�ޞ�=���;��8���~����d�8k�w�����yw�
を私ֺのNx [XMOのF /オグ;!Y〜
私は私のCompressAttribute
を削除した場合、予想通り、それは(私がYSODを参照)動作します。だから私の例外処理(ElmahHandleErrorAttribute
Elmah.Contrib.Mvcから)は、CompressAttribute
を含む残りのフィルタを停止し、応答は収縮していないようです。
関連するコード:
public sealed class CompressAttribute : ActionFilterAttribute
{
private const string _acceptEncodingHeader = "Accept-Encoding";
private const string _contentEncodingHeader = "Content-Encoding";
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpRequestBase request = filterContext.HttpContext.Request;
string acceptEncoding = request.Headers[_acceptEncodingHeader];
if (String.IsNullOrEmpty(acceptEncoding))
{
return;
}
acceptEncoding = acceptEncoding.ToUpperInvariant();
HttpResponseBase response = filterContext.HttpContext.Response;
if (acceptEncoding.Contains("GZIP"))
{
response.AppendHeader(_contentEncodingHeader, "gzip");
response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
}
else if (acceptEncoding.Contains("DEFLATE"))
{
response.AppendHeader(_contentEncodingHeader, "deflate");
response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress);
}
}
}
フィルター登録:
GlobalFilterCollection filters = GlobalFilters.Filters;
filters.Add(new ElmahHandleErrorAttribute(), 999); // Elmah.Contrib.Mvc
filters.Add(new CompressAttribute());
がどのように応答は、例外がスローされた場合でも読み取り可能であることを確認することができますか?
私は、http圧縮を有効にするための他の/より良い方法にもオープンしています。 – jrummell
IISに組み込まれている動的圧縮を調べましたか? –
@amit_g私はしていません。リンクがありますか? – jrummell