首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态压缩时如何修复err_content_decoding_failed?

动态压缩时如何修复err_content_decoding_failed?
EN

Stack Overflow用户
提问于 2013-02-27 12:25:14
回答 4查看 18.4K关注 0票数 6

我正在开发一个ASP.Net网站,目前正在优化它。我正在尝试对其启用动态内容压缩,但它无法工作。

我得到了

错误330 (net::ERR_CONTENT_DECODING_FAILED):未知错误。

  • 在我的开发环境中,它工作得很好。

代码语言:javascript
复制
- I've built the project in release mode  I've added the dynamic content compression module, enabled dynamic content compression and checked that this is what i receive.

  • 我安装了一个AWS EC2服务器windows 2008 R2。

代码语言:javascript
复制
- I've built the project in release mode, and publish it to a folder, which i deploy to the server.
- I've tried with the same web.config file as i have on the developer machine, but no luck there

将其添加到web.config中:

代码语言:javascript
复制
<httpCompression
    directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"
    dynamicCompressionDisableCpuUsage="90"
    dynamicCompressionEnableCpuUsage="80"
    maxDiskSpaceUsage="100" minFileSizeForComp="2700"
    noCompressionForRange="true"
    sendCacheHeaders="false"
    staticCompressionDisableCpuUsage="100"
    staticCompressionEnableCpuUsage="80"
    >
    <scheme name="gzip"
        dll="%Windir%\system32\inetsrv\gzip.dll" />
    <dynamicTypes>
        <add mimeType="text/*" enabled="true" />
        <add mimeType="message/*" enabled="true" />
        <add mimeType="application/javascript" enabled="true" />
        <add mimeType="application/json" enabled="true" />
        <add mimeType="application/xml" enabled="true" />
        <add mimeType="*/*" enabled="false" />
    </dynamicTypes>
    <staticTypes>
        <add mimeType="text/*" enabled="true" />
        <add mimeType="message/*" enabled="true" />
        <add mimeType="application/javascript" enabled="true" />
        <add mimeType="application/json" enabled="true" />
        <add mimeType="application/atom+xml" enabled="true" />
        <add mimeType="application/rss+xml" enabled="true" />
        <add mimeType="application/xaml+xml" enabled="true" />
        <add mimeType="application/xml" enabled="true" />
        <add mimeType="image/svg+xml" enabled="true" />
        <add mimeType="*/*" enabled="false" />
    </staticTypes>
</httpCompression>
<urlCompression doDynamicCompression="true" />

有谁知道什么可能是错的吗?

提前谢谢。

编辑:尝试通过fiddler运行请求并得到响应:“内容无法解压。

GZip头中的幻数是不正确的。确保您正在传递一个GZip流。“

EN

回答 4

Stack Overflow用户

发布于 2015-08-18 10:02:04

我们遇到了由IIS临时压缩文件引起的问题,这些文件由于磁盘空间不足而损坏/截断:

  1. 运行inetmgr
  2. 转到机器,压缩特性
  3. 删除缓存目录的内容
票数 8
EN

Stack Overflow用户

发布于 2015-12-02 19:47:07

我的一个同事也有同样的问题。

他使用非标准的应用程序池身份运行他的应用程序。为了解决这个问题,我将名为identity SomeOtherApplicationPoolIdentity

问题在于他的缓存目录中的子文件夹缺乏权限(要查看IIS使用的缓存目录,请转到IIS管理器,单击顶级树节点,单击压缩;默认情况下是%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files):

%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files内部,他丢失了一个名为SomeOtherApplicationPoolIdentity的子文件夹的权限,根据他的应用程序池标识在上下文中命名,所以他只是从该子文件夹继承父文件夹的权限,并且该子文件夹正常工作,因为父文件夹通常将权限授予IIS_IUSRSSYSTEMAdministrators和本地管理用户帐户。

票数 5
EN

Stack Overflow用户

发布于 2015-01-12 22:53:19

尝试指定dynamicCompressionBeforeCache="false“

我试图使用dynamicCompressionBeforeCache="true“,因为我认为它会导致缓存的对象被压缩-这样它们就可以作为较小的文件使用,但是得到了相同的错误……

代码语言:javascript
复制
<!--http://www.iis.net/configreference/system.webserver/urlcompression-->
<urlCompression doStaticCompression="true" doDynamicCompression="true" dynamicCompressionBeforeCache="false" />
<httpCompression 
  directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"
  dynamicCompressionDisableCpuUsage="90"
  dynamicCompressionEnableCpuUsage="80"
  maxDiskSpaceUsage="100"
  minFileSizeForComp="2700"
  noCompressionForRange="true"
  sendCacheHeaders="false"
  staticCompressionDisableCpuUsage="100"
  staticCompressionEnableCpuUsage="80">
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
    <dynamicTypes>
      <add mimeType="text/*" enabled="true" />
      <add mimeType="message/*" enabled="true" />
      <add mimeType="application/javascript" enabled="true" />
      <add mimeType="application/json" enabled="true" />
      <add mimeType="application/xml" enabled="true" />
      <add mimeType="*/*" enabled="false" />
    </dynamicTypes>
    <staticTypes>
      <add mimeType="text/*" enabled="true" />
      <add mimeType="message/*" enabled="true" />
      <add mimeType="application/javascript" enabled="true" />
      <add mimeType="application/json" enabled="true" />
      <add mimeType="application/atom+xml" enabled="true" />
      <add mimeType="application/rss+xml" enabled="true" />
      <add mimeType="application/xaml+xml" enabled="true" />
      <add mimeType="application/xml" enabled="true" />
      <add mimeType="image/svg+xml" enabled="true" />
      <add mimeType="*/*" enabled="false" />
    </staticTypes>
</httpCompression>

http://www.iis.net/configreference/system.webserver/urlcompression dynamicCompressionBeforeCache属性指定IIS是否将动态压缩尚未缓存的内容。当dynamicCompressionBeforeCache属性为true时,IIS在第一次发出请求时动态压缩响应,并将内容排队进行压缩。随后的请求将被动态地处理,直到压缩响应被添加到缓存目录。将压缩响应添加到缓存目录后,缓存的响应将发送给客户端以进行后续请求。如果dynamicCompressionBeforeCache为false,则IIS将返回未压缩的响应,直到将压缩响应添加到缓存目录。 注意:如果在刷新输出缓存响应时,dynamicCompressionBeforeCache属性为真,则在将响应放入输出缓存之前不会执行动态压缩。但是,如果doDynamicCompression属性为true,则在输出缓存中填充响应后仍会发生动态压缩。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15112104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档