asp.net core 2.2 brotli压缩在IIS上不起作用?

时间:2018-12-20 17:53:17

标签: asp.net-core compression brotli

我阅读了Asp.Net Core 2.2文档brotli compression is added to 2.2

我的app.UseResponseCompression();中有services.AddResponseCompression();Startup.cs,但是当我在使用最新的Chrome浏览器的系统上进行尝试时,在响应标头中仅看到gzip压缩。我在Windows Server 2012 IIS Web服务器上托管了Asp.Net Core 2.2应用。

我应该配置什么才能获得有效的brotli压缩?

dev tools screenshot

2 个答案:

答案 0 :(得分:2)

如果您托管在IIS中,则意味着IIS是与浏览器进行通信的Web服务器。它位于您的ASP.NET Core应用程序的前面,并代理所有请求和响应,但是默认情况下它不支持Brotli。

您需要使用IIS配置响应压缩。有扩展可用于添加Brotli和Zlib支持:https://docs.microsoft.com/en-us/iis/extensions/iis-compression/iis-compression-overview

您还可以在没有IIS的情况下运行ASP.NET Core应用。

答案 1 :(得分:1)

您提到您的应用程序托管在 IIS 中,并在您附加的链接中说明

<块引用>

当您无法使用 IIS 时使用响应压缩中间件 动态压缩模块

因此,如果您使用 IIS,您可以删除该中间件并使用开箱即用的 IIS 压缩模块。

您需要采取的步骤是:

  1. 在您的网络服务器上安装 brotli - 只需按照此处的说明进行操作 https://docs.microsoft.com/en-us/iis/extensions/iis-compression/iis-compression-overview#installing-iis-compression%5D
  2. 删除压缩中间件
  3. 在您的 applicationHost.conf 上,确保 set_xml(){ const self = this; let new_XML_file = "/xml/Scores_Database.xml"; this.XML_db.setXMLDoc(new_XML_file); this.XML_db.loadXMLfile(new_XML_file,function(xml){ console.log(xml); self.XML_db.SearchXML("Score", 5) ; }); } 存在于 brotli
  4. 注释掉 gzip 中的 gzip 选项,因为 98% 的浏览器支持 applicationHost.conf 压缩,并且在旧版本的 IIS 中选择 brotli 而不是 {{1} } 因为 gzip 中的顺序(例如 brotli)。