以编程方式启用动态压缩的最佳方法是什么?

时间:2015-04-13 21:10:42

标签: c# asp.net iis

假设Web服务器正在使用IIS7 +并且安装了动态压缩,我希望能够为特定页面“打开”压缩。我想专门使用IIS中的内置功能(我知道你可以编写代码来查看http头等)。

我知道您可以在web.config中为特定脚本打开它,如下所示:

<location path="Reports/Report.aspx">
    <system.webServer>
        <urlCompression doDynamicCompression="true" />
    </system.webServer>
</location>

假设每次添加需要压缩的新页面(或文件夹)时,我都不想修改web.config。谷歌搜索后,我找到了似乎有用的东西:

Request.ServerVariables["IIS_EnableDynamicCompression"] = "1";

因为没有详细记录,我担心这可能不是最好的方法吗?有没有其他人成功使用过这个? (到目前为止,我只在本地测试过)

2 个答案:

答案 0 :(得分:1)

如果您无法找到打开内置压缩的方法,您可以自己处理HTTP协议的这一部分。不是微不足道的,但可行的。新的开源ASP.NET可能有它的实现。

另请查看HttpRequest.SetDynamicCompression。它设置此服务器变量,但稍微复杂一点。我建议你用反射来调用这个方法。

答案 1 :(得分:0)

看起来这是要走的路:

Request.ServerVariables["IIS_EnableDynamicCompression"] = "1";

基于MS工程师提到的事实 Thomas Marquardt's blog