Iis 如何使用Web.config链接HTTP压缩和缓存?
我已经用microhosting.in购买了共享主机。在为我的初创公司整合网站后,下一步自然是推广。所以我检查了性能。Pagespeed测试指出缓存和未压缩的http存在问题。现在,通过Plesk托管Windows意味着对于任何IIS功能要求,我必须明确说服托管提供商,除非使用Web.config即可。技术团队有能力尝试使用http启用公共缓存之类的事情,因为代理缓存可能会抑制元标记内容嗅探,应该更可取。是否有任何自定义实现可以与Web.config结合使用,就像我在任何地方找到使用.htaccess的解决方案一样?将可选内容压缩在单独的文件夹中,并使用其自己的Web.config强制将与内容编码相关的属性添加到标题中。对于强制内容,重命名文件以使用asp.net runtime和place->将ContentType替换为预期的MIME类型,将其嵌套在某些标记中,因为在服务器端xsl转换期间,将其放置在最外层或未注释的默认位置会引起不安。现在在global.asax中实现以下C逻辑Iis 如何使用Web.config链接HTTP压缩和缓存?,iis,web-config,http-headers,plesk,http-compression,Iis,Web Config,Http Headers,Plesk,Http Compression,我已经用microhosting.in购买了共享主机。在为我的初创公司整合网站后,下一步自然是推广。所以我检查了性能。Pagespeed测试指出缓存和未压缩的http存在问题。现在,通过Plesk托管Windows意味着对于任何IIS功能要求,我必须明确说服托管提供商,除非使用Web.config即可。技术团队有能力尝试使用http启用公共缓存之类的事情,因为代理缓存可能会抑制元标记内容嗅探,应该更可取。是否有任何自定义实现可以与Web.config结合使用,就像我在任何地方找到使用.htacc
void Application_PreRequestHandlerExecute(object sender, EventArgs e)
{
HttpApplication app = sender as HttpApplication;
string acceptEncoding = app.Request.Headers["Accept-Encoding"];
Stream prevUncompressedStream = app.Response.Filter;
if (acceptEncoding == null || acceptEncoding.Length == 0)
return;
acceptEncoding = acceptEncoding.ToLower();
if (acceptEncoding.Contains("gzip"))
{
// gzip
app.Response.Filter = new GZipStream(prevUncompressedStream,
CompressionMode.Compress);
app.Response.AppendHeader("Content-Encoding", "gzip");
} /*else if (acceptEncoding.Contains("deflate") || acceptEncoding == "*")
{
// defalte
app.Response.Filter = new DeflateStream(prevUncompressedStream,
CompressionMode.Compress);
app.Response.AppendHeader("Content-Encoding", "deflate");
}*/ // Only cache for X seconds.
Response.Cache.SetExpires(DateTime.Now.AddMonths(9));
Response.Cache.SetMaxAge(new TimeSpan(270, 0, 0,0,0));
Response.Cache.SetCacheability(HttpCacheability.Public);
Response.Cache.SetValidUntilExpires(true);
// Sliding expiration means we reset the X seconds after each request.
// SetETag is required to work around one aspect of sliding expiration.
Response.Cache.SetSlidingExpiration(true);
Response.Cache.SetETagFromFileDependencies();
}