How one would configure static\dynamic http compression using xWebAdministration DSC module? As far as I understand DSC doesn't offer a direct way to configure those, but maybe xWebConfigKeyValue can do that? If so, have you got some examples?
And also this:
New-WebHandler -Name "svc-ISAPI-4.0_64bit" -Path "*.svc" -Verb 'GET,POST' -Modules IsapiModule
New-WebHandler -Name "svc-Integrated-4.0" -Path "*.svc" -Verb 'GET,POST' -Modules 'System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
With xIisHandler? but how?
Solution:
$mimeTypesDynamic = @(
@{mimeType='text/*'; enabled='True'},
@{mimeType='message/*'; enabled='True'},
@{mimeType='application/x-javascript'; enabled='True'},
@{mimeType='application/json'; enabled='True'},
@{mimeType='application/json; charset=utf-8'; enabled='True'},
@{mimeType='application/xml" enabled'; enabled='True'},
@{mimeType='application/xml; charset=utf-8'; enabled='True'},
@{mimeType='*/*'; enabled='false'}
)
$mimeTypesStatic = @(
@{mimeType='text/*'; enabled='True'},
@{mimeType='message/*'; enabled='True'},
@{mimeType='application/x-javascript'; enabled='True'},
@{mimeType='application/atom+xml'; enabled='True'},
@{mimeType='application/xaml+xml'; enabled='True'},
@{mimeType='*/*'; enabled='false'}
)
...
Script configureMime {
SetScript = {
Remove-WebHandler -Name "svc-Integrated-4.0" -WarningAction SilentlyContinue
Remove-WebHandler -Name "svc-ISAPI-4.0_64bit"
Clear-WebConfiguration -filter "/system.webServer/httpCompression/dynamicTypes" -pspath IIS: -WarningAction SilentlyContinue
Clear-WebConfiguration -filter "/system.webServer/httpCompression/staticTypes" -pspath IIS: -WarningAction SilentlyContinue
foreach ($mimeD in $using:mimeTypesDynamic) {
Add-WebConfiguration "/system.webServer/httpCompression/dynamicTypes" -pspath IIS: -value $mimeD
New-Item c:\1 -ItemType Directory -ea 0
}
foreach ($mimeS in $using:mimeTypesStatic) {
Add-WebConfiguration "/system.webServer/httpCompression/staticTypes" -pspath IIS: -value $mimeS
}
New-WebHandler -Name "svc-ISAPI-4.0_64bit" -Path "*.svc" -Verb 'GET,POST' -Modules IsapiModule
New-WebHandler -Name "svc-Integrated-4.0" -Path "*.svc" -Verb 'GET,POST' -Modules 'System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
}
TestScript = {
$types = Get-WebConfigurationProperty -Filter "/system.webServer/httpCompression" -name dynamicTypes
$types.Collection.Length -eq 8
}
GetScript = { return @{ 'Result' = "Mimi Configuration" } }
}
As far as I can see from the source code for xWebAdministration it looks like xWebConfigKeyValue only supports appsettings-values and xIISHandler only accepts predefined handlers. So you would have to use script-resource or create your own resources to configure these settings (or find some third-party modules).
To get you started, here are samples to modify dynamic and static compression on the global level:
#Enable dynamicCompression global (remember to install dynamic compression feature first)
Set-WebConfigurationProperty -Filter "/system.webServer/urlCompression" -PSPath IIS:\ -Name doDynamicCompression -Value "true"
#Enable staticCompression global
Set-WebConfigurationProperty -Filter "/system.webServer/urlCompression" -PSPath IIS:\ -Name doStaticCompression -Value "true"