gpt4 book ai didi

c# - 没有访问服务器配置的 asp.net mvc 2 的 GZip 或 Deflate 压缩

转载 作者:太空狗 更新时间:2023-10-29 19:26:51 24 4
gpt4 key购买 nike

我尝试使用这里描述的方法ASP.NET MVC Action Filter - Caching and Compression .起初结果令人鼓舞,因为服务器确实开始发送 GZip 编码的文件,但在进一步测试后,有时,在带有 Html.RenderAction 部分的页面中,该属性将被调用两次 gziping 已准备好的 gzip 页面。有谁知道使用 ASP.NET MVC 2 提供压缩页面的更稳定的方法或关于如何修改代码以使其更通用的任何想法?

public class CompressFilter : ActionFilterAttribute
{
public override void OnActionExecuting(FilterExecutingContext filterContext)
{
HttpRequestBase request = filterContext.HttpContext.Request;
string acceptEncoding = request.Headers["Accept-Encoding"];
if (string.IsNullOrEmpty(acceptEncoding)) return;
acceptEncoding = acceptEncoding.ToUpperInvariant();
HttpResponseBase response = filterContext.HttpContext.Response;
if (acceptEncoding.Contains("GZIP"))
{
response.AppendHeader("Content-encoding", "gzip");
response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
}
else if (acceptEncoding.Contains("DEFLATE"))
{
response.AppendHeader("Content-encoding", "deflate");
response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress);
}
}

最佳答案

您可以忽略子操作:

if (filterContext.IsChildAction)
{
return;
}
...

关于c# - 没有访问服务器配置的 asp.net mvc 2 的 GZip 或 Deflate 压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5609169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com