如何在代码级别压缩asp.net页面?

如何在代码级别压缩asp.net页面?,asp.net,ajax,gzip,Asp.net,Ajax,Gzip,我在global.ascx中添加了一个名为Application_PreRequestHandlerExecute的方法,如下所示: void Application_PreRequestHandlerExecute(object sender, EventArgs e) { string cTheFile = HttpContext.Current.Request.Path; string sExtentionOfThisFile = System.IO.Path.GetEx

我在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");
        }
    }

}
它在浏览普通页面时起作用

但如果页面包含更新面板,则会发生错误。 我有一个PageRequestParserException。 更新面板异步回发时,会发生此错误

有什么想法吗?

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

并发现如果项目的框架版本是3.5,所有的工作都很好,
但是如果版本是2.0。将发生此错误。

@SanjayGoswamiPageRequestParserException@SanjayGoswamiPageRequestParserException在更新面板回发时发生request@Kevin您确定这是压缩错误而不是其他错误吗?@Aristos详细信息:在“82&ModeType=Verifica”附近解析错误完整url为:@Kevin Ok,出现此错误的位置。那样做。1.移除更新面板以查看错误是否仍然存在。