Jac*_*ues 9 asp.net iis http-compression iis-10
在Firebug中,请求标头具有以下条目:
Accept-Encoding:gzip,deflate
但是没有:
Content-Encoding:gzip
在Response Header中.
无论我尝试过什么,在SO和其他网站上的一些答案后,似乎没有任何作用!静态文件或动态文件都没有被压缩,或者至少如果它们没有内容编码 - gzip值会在响应头中返回.
以下是我的web.config设置示例:
<urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="true" />
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files" minFileSizeForComp="150" staticCompressionIgnoreHitFrequency="true">
<remove name="gzip" />
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" staticCompressionLevel="8" dynamicCompressionLevel="8" />
</httpCompression>
Run Code Online (Sandbox Code Playgroud)
我忽略了命中频率
staticCompressionIgnoreHitFrequency="true"
我已经确认IIS实际上压缩了我可以看到的文件:
C:\ inetpub\temp\IIS临时压缩文件
如此处指定:在IIS 8 Windows 8中设置gzip
我已确保在Windows功能> Internet信息服务> WWW服务>性能功能中启用了静态和动态压缩
我也试过这个人的方法:
IIS 7.5压缩创建压缩文件但返回非压缩文件
编辑1:
IIS版本是10但我也在IIS 8.5上尝试过这个
编辑2:
我现在也尝试了在这个链接上找到的各种配置文件:https:
//github.com/h5bp/server-configs-iis/,它提供了一些看起来像'最佳实践'的web.config文件.
没解决
编辑3:
基于@Nkosi的输入,我创建了一个全新的Asp.net MVC应用程序,并使用我尝试的所有这些选项对其进行配置.这是我从Fiddler得到的原始标题:
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: text/javascript; charset=UTF-8
Expires: Wed, 20 Jul 2016 18:22:47 GMT
Last-Modified: Wed, 20 Jul 2016 18:22:47 GMT
Server: Microsoft-HTTPAPI/2.0
Date: Wed, 20 Jul 2016 18:22:47 GMT
Run Code Online (Sandbox Code Playgroud)
如您所见,没有Content-Encoding:Gzip
没有解决
编辑4:
我尝试过这种方法将代码添加到Global.asax部分的BeginRequest事件中:https://stackoverflow.com/a/27185575/392591
未解决
编辑5:
所以我只是尝试根据这个答案启用跟踪SO:https://stackoverflow.com/a/33182525/392591
没有失败,但我确实注意到跟踪文件的底部有一个名为GENERAL_RESPONSE_HEADERS的部分和这是它提供的内容:
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Server: Microsoft-IIS/10.0
X-AspNetMvc-Version: 5.2
X-AspNet-Version: 4.0.30319
X-Powered-By: My Little Pony
X-UA-Compatible: IE=Edge,chrome=1
Run Code Online (Sandbox Code Playgroud)
这适用于每个静态类型文件.
但是我刚在跟踪文件中找到以下内容:
8. STATIC_COMPRESSION_START 08:04:03.552
9. STATIC_COMPRESSION_NOT_SUCCESS Reason="NOT_FREQUENTLY_HIT" 08:04:03.552
10. STATIC_COMPRESSION_END 08:04:03.552
Run Code Online (Sandbox Code Playgroud)
压缩不成功的原因并不常见......很奇怪,因为我确实将Ignore Hit Frequency选项设置为true!
所以我刚进入IIS管理器并在服务器上将Ignore Hit Frequency设置为true(即applicationHost.config),它将跟踪文件输出更改为以下内容:
8. STATIC_COMPRESSION_START 08:19:17.489
9. STATIC_COMPRESSION_SUCCESS 08:19:17.489
10. STATIC_COMPRESSION_END 08:19:17.489
Run Code Online (Sandbox Code Playgroud)
我回去并在applicationHost.config中将其关闭,然后又回到静态压缩不成功,所以这肯定会有所不同.但是,当我查看FireBug时,它仍然传递未压缩文件而没有GZIP内容编码响应头.
我在失败请求跟踪发现另一个有趣的一点是最后两个entires GENERAL_FLUSH_RESPONSE_END和GENERAL_REQUEST_END两者显示我Bootstrap.css文件已发送17903个字节,大约18KB,匹配的文件在我的IIS临时压缩的压缩版本我见文件夹.因此文件在物理上被压缩,根据失败的请求跟踪,它发送正确的内容......但是浏览器会选择完整的117kb文件?
没解决
我正在使用 IIS10 并且我的 web.config 有
<system.webServer>
<urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="false" />
<!-- other config removed for brevity -->
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
当我测试从浏览器(Firefox、IE11、Edge、Google Chrome)到简单 MVC 应用程序的请求时。
请求全部都有Accept-Encoding: gzip, deflate并且响应返回Content-Encoding:gzip。
我什至用 Fiddler 测试过它。手动编写请求
GET http://localhost/MyWebApplication HTTP/1.1
User-Agent: Fiddler
Host: localhost
Accept-Encoding: gzip, deflate
Run Code Online (Sandbox Code Playgroud)
并得到相同的结果
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/10.0
X-AspNetMvc-Version: 5.2
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 18 Jul 2016 15:26:06 GMT
Content-Length: 3826
...
Run Code Online (Sandbox Code Playgroud)
CSS、Js 和所有其他基于文本的文件都被压缩。
您可能需要重新检查您的配置,以确保您在 IIS 和 web.config 中正确配置了压缩。
更新:
我确实注意到图像没有被压缩
要求
GET http://localhost/MyWebApplication/Images/Logo_small.png HTTP/1.1
User-Agent: Fiddler
Host: localhost
Accept-Encoding: gzip, deflate
Run Code Online (Sandbox Code Playgroud)
回复
HTTP/1.1 200 OK
Cache-Control: max-age=604800
Content-Type: image/png
Last-Modified: Fri, 27 Nov 2015 03:15:22 GMT
Accept-Ranges: bytes
ETag: "c9d1fdd9c128d11:0"
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
Date: Mon, 18 Jul 2016 15:33:02 GMT
Content-Length: 2970
...
Run Code Online (Sandbox Code Playgroud)
经过一些 google-fu 发现图像通常已经被压缩,因此没有应用 gzip。
web.config 中的完整 system.webServer
<system.webServer>
<urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="false" />
<validation validateIntegratedModeConfiguration="false" />
<httpErrors errorMode="Custom" existingResponse="Replace">
<clear />
<error statusCode="404" responseMode="ExecuteURL" path="/NotFound" />
</httpErrors>
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<staticContent>
<remove fileExtension=".woff" />
<remove fileExtension=".woff2" />
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
<mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
</staticContent>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7472 次 |
| 最近记录: |