Как программно установить глобальные типы MIME для IIS6? - PullRequest
4 голосов
/ 16 декабря 2009

В настоящее время я могу установить тип mime с помощью adsutil.vbs для основного веб-сайта на IIS6 со следующим синтаксисом:

cscript adsutil.vbs set W3SVC/1/Root/MimeMap ".manifest, text/cache-manifest"

Кажется, это работает нормально, когда мне нужно только нацелиться на W3SVC / 1.

Мне нужно написать скрипт обновления, который будет гарантировать, что для любых сайтов в данной установке IIS6 настроен правильный тип mime. Я мог бы добавить тип MIME для каждого отдельного сайта или на глобальном уровне. Мне нужно сделать это программно, и я бы хотел использовать adsutil.vbs, если это вообще возможно.

Ответы [ 2 ]

0 голосов
/ 17 февраля 2012

Вы можете использовать ADSI и powershell 2.0.

$adsiPrefix = "IIS://$serverName"
$iisPath = "W3SVC"
$iisADSI = [ADSI]"$adsiPrefix/$iisPath"

$site = $iisADSI.Create("IISWebServer", $script:webSiteNumber)

$xapMimeType = New-Object -comObject MimeMap
    SetCOMProperty $xapMimeType "Extension" ".xap"
    SetCOMProperty $xapMimeType "MimeType" "application/x-silverlight-app"
    $site.Properties["MimeMap"].Add($xapMimeType)

    $site.SetInfo()
    $site.CommitChanges()

function SetCOMProperty($target, $member, $value) {
    $target.psbase.GetType().InvokeMember($member, [System.Reflection.BindingFlags]::SetProperty, $null, $target, $value)        
}
0 голосов
/ 14 января 2010

Я думаю, что проще будет просто изменить типы пантомимы на каждом сервере, вам нужно сделать это только один раз, чтобы изменения каскадно перешли на каждый веб-сайт. Почему вы пытаетесь переписать тип пантомимы .vbs? вам может быть лучше создать собственный.

Или вы можете установить изменение в метабазе для IIS, вам просто нужно установить прямое редактирование метабазы ​​на true для каждого сервера, а затем внести изменения через код.

...