我该如何以编程的方式打开IIS的动态压缩功能?

9
我正在为我的Web应用程序制作安装程序。我的Web应用程序大量使用CSS和JS,因此我希望在IIS7/7.5中启用静态和动态HttpCompression。
它需要2个步骤:
1. 我可以修改web.config文件,在其中添加标签,就可以了。 2. 必须打开Windows Feature中的DynamicContentCompression才能使httpCompression工作。
IIS7和IIS7.5默认启用静态HttpCompression,但不启用动态HttpCompression(尽管它是可用的)。我可以通过手动打开来实现:开始/控制面板/程序和功能/打开或关闭Windows功能/IIS/WWW服务/性能功能/动态内容压缩,但如何以编程方式打开该Windows Feature?我可以在我的安装程序中使用PowerShell、C#。
你有什么想法吗?谢谢。
5个回答

11

以下是我会采用的方法:

dism /online /enable-feature /featurename:IIS-HttpCompressionDynamic

dism 允许你检查命令返回的代码,从而可以验证它是否有效(或者已经被安装了)。


7
这些PowerShell命令将添加动态压缩功能。
Import-Module ServerManager
Add-WindowsFeature Web-Server, Web-Dyn-Compression

不要忘记以管理员身份运行或拥有管理员权限。


1
请改进你的回答。 - Anthony Pham

1

免责声明:这是完全未经验证和测试的...

Greg上面的答案几乎正确,但那只是解锁已安装的功能。默认情况下,当该功能被安装时,它被锁定...一直到机器级别。

理由是因为动态压缩可能会对服务器的CPU造成很大的影响。因此,在托管环境中,这可能会导致问题。即使是在您自己的专用服务器上,也可能会严重影响性能。因此,安全起见,默认情况下将其锁定,只有在您知道自己在做什么的情况下才能解锁。

所以...通过快速谷歌搜索,我找到了这个页面

请注意,这篇Technet文章有一个命令行工具,可以安装所有必需的包来创建一个示例静态IIS服务器。我知道你的问题不是针对静态IIS服务器...但它确实突出了可能的命令。

所以我猜...也许是这个?::

Start /w pkgmgr /iu:IIS-HttpCompressionDynamic

可能是这样 :)

这里有另一篇文章,提供更多选项...


1

您可以使用appcmd工具打开此功能。从命令行:

C:\windows\system32\inetsrv\appcmd set config /section:urlCompression /doDynamicCompression:True

或者,如果您想在 PowerShell 脚本中执行它:

& $env:windir\system32\inetsrv\appcmd set config -section:urlCompression /doDynamicCompression:true

你需要管理员权限才能执行这两个操作。


谢谢Greg,但是那个addcmd不是我需要的“打开Windows功能”。 - Thach Lockevn

0
Enable-WindowsOptionalFeature -Online -FeatureName IIS-HttpCompressionDynamic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接