目前,我可以使用以下语法为IIS6上的主网站设置带有adsutil.vbs的mime类型:
cscript adsutil.vbs set W3SVC/1/Root/MimeMap ".manifest, text/cache-manifest"
当我只需要定位W3SVC / 1时,这似乎工作正常。
我需要编写一个更新脚本,以确保给定IIS6安装上的任何站点都配置了正确的mime类型。我可以将mime类型添加到每个单独的站点或全局级别。我需要以编程方式执行此操作,并且如果可能的话,我想使用adsutil.vbs。
答案 0 :(得分:0)
我认为更简单的方法就是修改每台服务器上的mime类型,你只需要做一次更改以级联到每个网站,为什么你要重写.vbs mime类型呢?你可能最好创建一个自定义的。
或者您可以在IIS的Metabase中设置更改,您只需要在每台服务器上将enable direct metabase edit设置为true,然后通过代码进行更改。
答案 1 :(得分:0)
您可以使用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)
}