9

我正在为我的 Web 应用程序制作安装程序。我的 Web 应用程序大量使用 CSS 和 JS,所以我想为 IIS7/7.5 启用静态和动态 HttpCompression。

它需要2个步骤:

  1. 我可以修改web.config, put<httpcompression>标签,没关系。
  2. 必须在 Windows 功能中打开 DynamicContentCompression 才能使 httpCompression 工作。

静态 HttpCompression 在 IIS7 和 IIS7.5 中默认启用,但动态 HttpCompression 默认不启用(尽管它可用)。我可以手动打开:Start/ControlPanel/ProgramsAndFeatures/TurnWindowsFeatures on or Off/IIS/WWW Service/Performance features/Dynamic Content Compression,但是如何以编程方式打开该 Windows 功能? 我可以在我的安装程序中使用 PowerShell、C#。

知道我怎么能做到这一点吗?谢谢。

4

5 回答 5

11

这就是我会这样做的方式:

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

dism 允许您检查命令的返回码,允许您验证它是否有效(或已安装)

于 2014-06-03T13:10:55.677 回答
6

这些 PowerShell 命令将添加动态压缩功能。

Import-Module ServerManager
Add-WindowsFeature Web-Server, Web-Dyn-Compression

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

于 2015-02-06T01:35:22.683 回答
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

您将需要管理权限才能做到这一点。

于 2010-03-05T05:22:29.043 回答
1

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

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

原因是动态压缩确实会与服务器 CPU 发生冲突。因此,在托管环境中,这可能会杀死事情。即使使用您自己的专用服务器,它也可能会造成严重后果。所以安全的方法是默认锁定它,只有当你知道你在做什么,然后去解锁它。

所以..有一个快速的谷歌搜索,我来到了这个页面

请注意这篇 technet 文章如何使用命令行来安装示例静态 IIS 服务器所需的所有包。我知道您的问题不是针对静态 IIS 服务器的……但它确实突出了可能的命令。

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

Start /w pkgmgr /iu:IIS-HttpCompressionDynamic

?? 也许 :)

这是另一篇有更多选择的文章...

于 2010-03-19T23:19:52.867 回答
0
Enable-WindowsOptionalFeature -Online -FeatureName IIS-HttpCompressionDynamic
于 2020-11-04T19:48:06.893 回答