c# - 页面可以选择退出 IIS 7 压缩吗?

标签 c# asp.net iis compression iis-7.5

IIS7 使用 GZIP 自动压缩我的页面。

这很好...但是,对于一个特定的页面,我需要将其流式传输给用户,在需要时使用 Response.Flush()。但是当压缩输出时,IIS 服务器似乎会收集我的所有输出,直到页面完成后再压缩并将其发送到客户端。这使我将内容刷新给用户的尝试无效。

有没有办法让这一页选择退出压缩?

一个可能的选择

我已经确定,如果我手动将内容类型设置为与 c:\windows\system32\inetsrv\config\applicationhost.config 中的 IIS 配置不匹配的内容类型,那么 IIS 将不要压缩它。例如。 Response.ContentType = "x-text/html"。这适用于 IE8,因为它回退以显示 HTML。但是 Firefox 会询问用户如何处理未知文件类型。

这可以工作,如果有另一种我可以使用的 Mime 类型,浏览器会接受为 HTML,但在 applicationhost.config 中不匹配。作为引用,这些是将被压缩的 MIME 类型:

   <add mimeType="text/*" enabled="true" />
   <add mimeType="message/*" enabled="true" />
   <add mimeType="application/x-javascript" enabled="true" />
   <add mimeType="application/atom+xml" enabled="true" />
   <add mimeType="application/xaml+xml" enabled="true" />

其他选项?

还有其他选项可以选择退出压缩吗?

最佳答案

可能无法为某个页面禁用压缩,但您可以为目录禁用压缩。

这描述了如何禁用静态压缩,但它可能适用于动态压缩:(来自 http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/502ef631-3695-4616-b268-cbe7cf1351ce.mspx?mfr=true)

要仅对单个目录禁用静态压缩,首先启用全局静态压缩(如果已禁用),然后在该目录中禁用静态压缩。例如,为位于 http://www.contoso.com/Home/StyleSheets 的目录启用静态压缩,执行以下步骤:

  1. 通过在命令提示符处执行以下命令来启用全局静态压缩:

adsutil set w3svc/filters/compression/parameters/HcDoStaticCompression true

  1. 通过在命令提示符处执行以下命令,在此目录中禁用静态压缩:

adsutil 设置 w3svc/1/root/Home/StyleSheets/DoStaticCompression false

关于c# - 页面可以选择退出 IIS 7 压缩吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2678042/

相关文章:

c# - css 中的 mvc 图像未加载到应用程序虚拟目录中

ajax - AJAX 请求的 IE11 GZIP 速度慢

asp.net - 丢失 session 状态

c# - 了解列表中的继承项和基本项

c# - 难以通过工厂 DI 理解 ninject(或一般的 IOC 容器)?

c# - Rijndael.CreateDecryptor() 使 IIS 工作线程崩溃(但仅在 IIS 7.5 64 位中)

asp.net - 如何创建youtube缩略图链接

c# - 使用 Entity Framework 返回所有 IQueryable

javascript - 多个文件检查扩展名是 Pdf

c# - 在新构建后保留 Session[] 变量