【问题标题】:How to compress asp.net page in code level?如何在代码级别压缩 asp.net 页面?
【发布时间】:2012-02-24 08:59:07
【问题描述】:

我在 global.ascx 中添加了一个名为 Application_PreRequestHandlerExecute 的方法,如下所示:

void Application_PreRequestHandlerExecute(object sender, EventArgs e)
{

    string cTheFile = HttpContext.Current.Request.Path;
    string sExtentionOfThisFile = System.IO.Path.GetExtension(cTheFile);

    if (sExtentionOfThisFile.Equals(".aspx", StringComparison.InvariantCultureIgnoreCase))
    {
        HttpApplication httpApp = (HttpApplication)sender;

        string acceptEncoding = httpApp.Request.Headers["Accept-Encoding"];
        if (string.IsNullOrEmpty(acceptEncoding))
        {
            return;
        }
        acceptEncoding = acceptEncoding.ToLower();

        System.IO.Stream requestStream = httpApp.Response.Filter;

        if (acceptEncoding.Contains("gzip"))
        {
            httpApp.Response.Filter = new System.IO.Compression.GZipStream(requestStream,
                System.IO.Compression.CompressionMode.Compress);
            httpApp.Response.AppendHeader("Content-Encoding", "gzip");
        }
        else if (acceptEncoding.Contains("deflate"))
        {
            httpApp.Response.Filter = new System.IO.Compression.DeflateStream(requestStream,
                System.IO.Compression.CompressionMode.Compress);
            httpApp.Response.AppendHeader("Content-Encoding", "deflate");
        }
    }

}

浏览正常页面时有效。

但是如果一个页面包含 UPDATE-PANEL 就会发生错误。 我得到一个 PageRequestParserException。 当更新面板异步回发时,会发生此错误。

有什么想法吗?

【问题讨论】:

  • @SanjayGoswami PageRequestParserException
  • @SanjayGoswami PageRequestParserException 它发生在更新面板回发请求时
  • @Kevin 你确定这是压缩而不是其他错误吗?
  • @Aristos 详细信息:“82&ModeType=Verifica”附近的错误解析完整网址为:127.0.0.1/displaydatabase/shared/…
  • @Kevin 好的,出现此错误的位置。去做。 1.移除更新面板,看看错误是否依然存在。

标签: asp.net ajax gzip


【解决方案1】:

我通过在我的页面上将 EnableEventValidation 设置为 false 并将压缩逻辑移动到页面的构造函数来“修复”。 显然这不是一个好的解决方案(密切验证)。 如果有人知道一个好的解决方案,请告诉我。

发现如果项目的框架版本是3.5,一切正常, 但如果版本是 2.0.会发生这个错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-24
    • 2017-08-11
    • 1970-01-01
    • 1970-01-01
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多