Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Configures HTTP compression.
Syntax
class HttpCompressionSection : ConfigurationSectionWithCollection  
Methods
The following table lists the methods exposed by the HttpCompressionSection class.
| Name | Description | 
|---|---|
| Add | (Inherited from ConfigurationSectionWithCollection.) | 
| Clear | (Inherited from ConfigurationSectionWithCollection.) | 
| Get | (Inherited from ConfigurationSectionWithCollection.) | 
| GetAllowDefinition | (Inherited from ConfigurationSection.) | 
| GetAllowLocation | (Inherited from ConfigurationSection.) | 
| Remove | (Inherited from ConfigurationSectionWithCollection.) | 
| RevertToParent | (Inherited from ConfigurationSection.) | 
| SetAllowDefinition | (Inherited from ConfigurationSection.) | 
| SetAllowLocation | (Inherited from ConfigurationSection.) | 
Properties
The following table lists the properties exposed by the HttpCompressionSection class.
| Name | Description | 
|---|---|
| CacheControlHeader | A read/write stringvalue that specifies theCache-Controlheader that is sent with compressed files. The default is "max-age=86400". To enable this setting, you must set theSendCacheHeadersproperty totrue. You must also restart the World Wide Web Publishing Service (WWW service) before changes to theCacheControlHeaderproperty will take effect. Note:  TheCache-Controlheader is sent with theHTTP Expiresheader that is specified in theExpiresHeaderproperty. This combination of headers ensures that older clients and proxy servers do not try to cache compressed files. | 
| Directory | A read/write stringvalue that specifies the directory where compressed versions of static files are temporarily stored and cached. The default is "%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files". IIS 7 creates a subfolder in this folder for each application pool, and a subfolder in each application pool folder for each compression scheme. Note:  The default directory path for IIS temporary compressed files in IIS 6.0 was %Windir%\\IIS Temporary Compressed Files, and a flat directory structure was used. | 
| DoDiskSpaceLimiting | A read/write booleanvalue.trueif a limit exists for the amount of disk space that compressed files in the compressed files folder can occupy; otherwise,false. The default istrue. The compressed files folder is specified by theDirectoryproperty. | 
| DynamicCompressionDisableCpuUsage | A read/write uint32value that specifies the percentage of CPU utilization at which dynamic compression will be disabled. The default is 90. The value must be between 0 and 100. Average CPU utilization is calculated every 30 seconds. Note:  This property acts as an upper CPU limit at which dynamic compression is turned off. When CPU utilization falls below the value specified in theDynamicCompressionEnableCpuUsageproperty, dynamic compression will be reenabled. | 
| DynamicCompressionEnableCpuUsage | A read/write uint32value that specifies the percentage of CPU utilization below which dynamic compression will be enabled. The default is 50. The value must be between 0 and 100. Average CPU utilization is calculated every 30 seconds. Note:  This property acts as a lower CPU limit below which dynamic compression is turned on. When CPU utilization rises above the value specified in theDynamicCompressionDisableCpuUsageproperty, dynamic compression will be disabled. | 
| DynamicTypes | A DynamicTypeSettings value that contains file name extensions that IIS can serve with dynamic compression. | 
| ExpiresHeader | A read/write stringvalue that specifies the content of theHTTP Expiresheader that is sent with compressed files. The default is "Wed, 01 Jan 1997 12:00:00 GMT". To enable this setting, you must set theSendCacheHeadersproperty totrue. You must also restart the WWW service before changes to theExpiresHeaderproperty will take effect. Note:  TheHTTP Expiresheader is sent with theCache-Controlheader that is specified in theCacheControlHeaderproperty. This combination of headers ensures that older clients and proxy servers do not try to cache compressed files. | 
| HttpCompression | An array of HttpCompressionSchemeElement values that specify the compression schemes (Gzip or Deflate) that IIS uses to compress client requests. | 
| Location | (Inherited from ConfigurationSection.) A key property. | 
| MaxDiskSpaceUsage | A read/write uint32value that specifies a limit of disk space, in megabytes, that compressed files can occupy in the compression directory. The default is 100. When the space used by compressed files exceeds 90 percent of the value inMaxDiskSpaceUsage, IIS deletes the least recently used files until a 90-percent usage level is reached. Note:  In IIS 6.0, this limit is expressed in bytes; in IIS 7, it is expressed in megabytes. In IIS 7 the limit is applied per application pool. | 
| MinFileSizeForComp | A read/write uint32value that specifies the minimum file size, in kilobytes, for a file to be compressed. The default is 256. | 
| NoCompressionForHttp10 | A read/write booleanvalue.trueif compression is disabled for requests that contain an HTTP 1.0 version number; otherwise,false. The default istrue. Note:  Some HTTP 1.0 clients do not handle the caching of compressed objects correctly. You can use this setting to avoid returning a compressed file to a client that cannot decompress it. | 
| NoCompressionForProxies | A read/write booleanvalue.trueif compression is disabled for HTTP 1.1 requests that come through a proxy server; otherwise,false. The default istrue.Note:  Some HTTP proxy servers do not handle the caching of compressed objects correctly. You can use this setting to avoid returning a compressed file to a proxy server that cannot decompress it. | 
| NoCompressionForRange | A read/write booleanvalue.trueif compression is disabled for HTTP requests that include theRangeheader; otherwise,false. The default istrue. Note:  Some clients cannot handle range requests correctly. You can use this setting to avoid returning a compressed file to a client that cannot decompress it. | 
| Path | (Inherited from ConfigurationSection.) A key property. | 
| SectionInformation | (Inherited from ConfigurationSection.) | 
| SendCacheHeaders | A read/write booleanvalue.trueif the headers configured in theCacheControlHeaderandExpiresHeaderproperties are sent with compressed responses; otherwise,false. The default isfalse. | 
| StaticCompressionDisableCpuUsage | A read/write uint32value that specifies the percentage of CPU utilization at which static compression is disabled. The default is 100. The value must be between 0 and 100. Average CPU utilization is calculated every 30 seconds. Note:  This property acts as an upper CPU limit at which static compression is turned off. When CPU utilization falls below the value specified in theStaticCompressionEnableCpuUsageproperty, static compression will be reenabled. | 
| StaticCompressionEnableCpuUsage | A read/write uint32value that specifies the percentage of CPU utilization at which static compression is enabled. The default is 50. The value must be between 0 and 100. Average CPU utilization is calculated every 30 seconds. Note:  This property acts as a lower CPU limit below which static compression is turned on. When CPU utilization rises above the value specified in theStaticCompressionDisableCpuUsageproperty, static compression will be disabled. | 
| StaticTypes | A StaticTypeSettings value that contains file name extensions that IIS can serve with static compression. | 
Subclasses
This class contains no subclasses.
Remarks
Static compression is on by default in IIS 7. The StaticCompressionEnableCpuUsage, StaticCompressionDisableCpuUsage, DynamicCompressionEnableCpuUsage, and DynamicCompressionDisableCpuUsage properties have been added to enable or disable compression on the fly depending on CPU load.
The following compression properties from IIS 6.0 are no longer present in IIS 7:
- [HcCompressionBufferSize]() 
- HcCreateFlags
- HcDoOnDemandCompression
- HcFileExtensions
- HcFilesDeletedPerDiskFree
- HcIoBufferSize
- HcMaxQueueLength
- HcPriority
- HcScriptFileExtensions
Example
The following example displays the non-array properties in the HttpCompressionSection class and lists the static and dynamic compression array properties.
' Connect to the WMI WebAdministration namespace.  
Set oWebAdmin = GetObject( _  
    "winmgmts:root\WebAdministration")  
  
' Get the HTTP compression section.  
Set oSection = oWebAdmin.Get( _  
    "HttpCompressionSection.Path=" & _  
    "'MACHINE/WEBROOT/APPHOST',Location=''")  
  
' Display the properties that are not collections.  
WScript.Echo "HttpCompressionSection properties"  
WScript.Echo "---------------------------------"  
WScript.Echo "Directory: " & oSection.Directory  
WScript.Echo "DoDiskSpaceLimiting: " & _  
    oSection.DoDiskSpaceLimiting  
WScript.Echo "DynamicCompressionDisableCpuUsage: " & _  
    oSection.DynamicCompressionDisableCpuUsage  
WScript.Echo "DynamicCompressionEnableCpuUsage: " & _  
    oSection.DynamicCompressionEnableCpuUsage  
WScript.Echo "ExpiresHeader: " & oSection.ExpiresHeader  
WScript.Echo "MaxDiskSpaceUsage: " & _  
    oSection.MaxDiskSpaceUsage  
WScript.Echo "MinFileSizeForComp: " & _  
    oSection.MinFileSizeForComp  
WScript.Echo "NoCompressionForProxies: " & _  
    oSection.NoCompressionForProxies  
WScript.Echo "NoCompressionForRange: " & _  
    oSection.NoCompressionForRange  
WScript.Echo "SendCacheHeaders: " & _  
    oSection.SendCacheHeaders  
WScript.Echo "StaticCompressionDisableCpuUsage: " & _  
    oSection.StaticCompressionDisableCpuUsage  
WScript.Echo "StaticCompressionEnableCpuUsage: " & _  
    oSection.StaticCompressionEnableCpuUsage  
WScript.Echo  
  
' Display the static compression types.  
WScript.Echo _  
    "HttpCompressionSection.StaticTypes.StaticTypes"  
WScript.Echo _  
    "----------------------------------------------"  
For Each oType In oSection.StaticTypes.StaticTypes  
    WScript.Echo "MimeType: " & oType.MimeType  
    WScript.Echo "Enabled: " & oType.Enabled  
    WScript.Echo  
Next  
WScript.Echo  
  
' Display the dynamic compression types.  
WScript.Echo _  
    "HttpCompressionSection.DynamicTypes.DynamicTypes"  
WScript.Echo _  
    "------------------------------------------------"  
For Each oType In oSection.DynamicTypes.DynamicTypes  
    WScript.Echo "MimeType: " & oType.MimeType  
    WScript.Echo "Enabled: " & oType.Enabled  
    WScript.Echo  
Next  
  
' Display the compression scheme elements.  
WScript.Echo "HttpCompressionSection.HttpCompression"  
WScript.Echo "-----------------------------------"  
For Each oScheme In oSection.HttpCompression  
    WScript.Echo "Name: " & oScheme.Name  
    WScript.Echo "Dll: " & oScheme.Dll  
    WScript.Echo "DoStaticCompression: " & _  
        oScheme.DoStaticCompression  
    WScript.Echo "StaticCompressionLevel: " & _  
        oScheme.StaticCompressionLevel  
    WScript.Echo "DoDynamicCompression: " & _  
        oScheme.DoDynamicCompression  
    WScript.Echo "DynamicCompressionLevel: " & _  
        oScheme.DynamicCompressionLevel  
    WScript.Echo  
Next  
  
Inheritance Hierarchy
ConfigurationSectionWithCollection
HttpCompressionSection
Requirements
| Type | Description | 
|---|---|
| Client | -   IIS 7.0 on Windows Vista - IIS 7.5 on Windows 7 - IIS 8.0 on Windows 8 - IIS 10.0 on Windows 10 | 
| Server | -   IIS 7.0 on Windows Server 2008 - IIS 7.5 on Windows Server 2008 R2 - IIS 8.0 on Windows Server 2012 - IIS 8.5 on Windows Server 2012 R2 - IIS 10.0 on Windows Server 2016 | 
| Product | - IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0 | 
| MOF file | WebAdministration.mof | 
See Also
ConfigurationSectionWithCollection Class
DynamicTypeSettings Class
HttpCompressionMimeTypeElement Class
HttpCompressionSchemeElement Class
StaticTypeSettings Class