Gle*_*tle 13 c# compression asp.net iis iis-7.5
IIS7使用GZIP自动压缩我的页面.
这很棒......但是,对于一个特定页面,我需要在需要时将其流式传输给用户Response.Flush()
.但是当输出被压缩时,IIS服务器似乎收集我的所有输出,直到页面完成,然后压缩并将其发送到客户端.这使我尝试将内容刷新给用户无效.
有没有办法可以让这一页退出压缩?
我已经确定,如果我手动将内容类型设置为与IIS配置不匹配的内容类型c:\windows\system32\inetsrv\config\applicationhost.config
,那么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" />
Run Code Online (Sandbox Code Playgroud)
还有其他选择退出压缩吗?
可能无法对某个页面禁用压缩,但可以对目录禁用压缩。
这描述了如何禁用静态压缩,但它可能适用于动态压缩:(来自http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/502ef631-3695-4616-b268-cbe7cf1351ce.mspx?制造商=真)
要仅对单个目录禁用静态压缩,请首先启用全局静态压缩(如果已禁用),然后在该目录中禁用静态压缩。例如,要为http://www.contoso.com/Home/StyleSheets上的目录启用静态压缩,请执行以下步骤:
adsutil set w3svc/filters/compression/parameters/HcDoStaticCompression true
adsutil set w3svc/1/root/Home/StyleSheets/DoStaticCompression false
归档时间: |
|
查看次数: |
2195 次 |
最近记录: |