Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Рэндалл Дюбуа
Предварительная версия Microsoft Internet Explorer (IE) версии 9 включает поддержку дополнительных типов MIME для многофункциональных мультимедийных приложений. Для поддержки дополнительных типов MIME необходимо добавить типы MIME на сервер IIS.
В IE 9 поддерживаются следующие дополнительные типы MIME:
Расширение имени файла | тип MIME |
---|---|
.Svg | image/svg+xml |
.xht | application/xhtml+xml |
.xhtml | application/xhtml+xml |
Чтобы добавить эти типы MIME на сервер IIS, можно:
- Добавьте их вручную с помощью диспетчера IIS. Дополнительные сведения см. в разделе Настройка типов MIME в IIS 7 и более поздних версий.
- Обновите файл web.config, как описано в записи блога Билла Стейпла Добавление типов mime с помощью IIS7 Web.config.
- Используйте скрипт, включенный в эту статью.
Использование скрипта AddMimeTypes
Вы также можете использовать скрипт, включенный в эту статью, для добавления типов MIME в версии Windows, включая Windows 2000 и более поздние версии. Скрипт использует инструментарий WMI и добавляет типы MIME на локальный или удаленный сервер.
Чтобы добавить типы MIME для IE 9 на сервер IIS с помощью скрипта AddMimeTypes:
Создайте новый файл скрипта с помощью средства разработки или текстового редактора.
Скопируйте содержимое файла скрипта из следующего раздела.
Вставьте содержимое скрипта в новый файл скрипта.
Сохраните файл скрипта как AddMimeTypes.vbs.
В командной строке введите следующую команду:
cscript AddMimeTypes.vbs [RemoteServerName]
Замените
[RemoteServerName]
> именем удаленного компьютера, на который нужно добавить типы MIME.Примечание
Если папка, в которой сохраняется файл скрипта, не включена в переменную среды Path , необходимо указать полный путь к скрипту в команде или изменить каталоги на папку перед выполнением команды.
Убедитесь, что типы MIME были добавлены с помощью диспетчера IIS.
Скрипт AddMimeTypes.vbs
' File: AddMimeTypes2.vbs
' Copyright Microsoft Corp. 2010
'
' This script adds the following Mime types to the root of a local or remote
' server.
'
' (0) .svg image/svg+xml
' (1) .xht application/xhtml+xml
' (2) .xhtml application/xhtml+xml
'
' Usage:
' cscript AddMimeTypes.vbs [RemoteServerName]
'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
OPTION EXPLICIT
DIM strServer, objWMIService, objOperatingSystem, colOperatingSystems
DIM osVersion, iisVersion, objMimeMap, objMimeTypes, Mime, i
DIM objShell, strInetsrvDir, strInetpubScriptsDir
DIM numMimeTypes, numExistingMimes, mimeExists(2)
CONST ADS_PROPERTY_UPDATE = 2
IF WScript.Arguments.Length = 1 THEN
strServer = WScript.Arguments( 0 )
ELSE
strServer = "."
END IF
iisVersion = "0"
' What version of Windows and IIS am I using? If I am on IIS 5.x/6 use adsutil.vbs
' If I am on IIS 7 and later use appcmd
SET objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}" _
+ "!\\" + strServer + "\root\cimv2")
SET colOperatingSystems = _
objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
FOR EACH objOperatingSystem IN colOperatingSystems
osVersion = objOperatingSystem.Version
strInetsrvDir = objOperatingSystem.SystemDirectory + "\inetsrv"
strInetpubScriptsDir = objOperatingSystem.SystemDrive _
+ "\inetpub\AdminScripts"
NEXT
IF ( 0 = Strcomp(strServer,".") ) THEN
strServer = "localhost"
END IF
i = InStr(osVersion,"6.")
IF ( i = 1 ) THEN
iisVersion = "7"
END IF
i = InStr(osVersion,"5.")
IF ( i = 1 ) THEN
iisVersion = "5"
END IF
i = InStr(osVersion,"5.2")
IF ( i = 1 ) THEN
iisVersion = "6"
END IF
SET objShell = WScript.CreateObject("WScript.Shell")
SELECT CASE iisVersion
CASE "7"
' Run appcmd
objShell.Run(strInetsrvDir + _
"\appcmd.exe set config -section:system.webServer/staticContent /+_""[fileExtension='.svg',mimeType='image/svg%2Bxml']""")
objShell.Run(strInetsrvDir + _
"\appcmd.exe set config -section:system.webServer/staticContent /+""[fileExtension='.xht',mimeType='application/xhtml%2Bxml']""")
objShell.Run(strInetsrvDir + _
"\appcmd.exe set config -section:system.webServer/staticContent /+""[fileExtension='.xhtml',mimeType='application/xhtml%2Bxml']""")
CASE "6", "5"
' Use ADSI to add the MIME types.
' Can't use adsutil because they will destructively overwrite instead of appending
SET objMimeMap = GetObject( "IIS://" + strServer + "/MimeMap" )
objMimeTypes = objMimeMap.GetEx("MimeMap")
' Check to see if the MIME types already exist
mimeExists(0)=0
mimeExists(1)=0
mimeExists(2)=0
numExistingMimes=0
CheckIfMimeTypeExists(objMimeMap)
numExistingMimes=mimeExists(0)+mimeExists(1)+mimeExists(2)
IF ( 3 = numExistingMimes ) THEN
WScript.Echo("All extensions currently have mime types registered. Complete.")
WScript.Quit
END IF
' For extensions that don't have registered MIME types, add them
numMimeTypes = UBound(objMimeTypes)
REDIM PRESERVE objMimeTypes(numMimeTypes+3-numExistingMimes)
i = numMimeTypes+1
IF ( 0 = mimeExists(0) ) THEN
SET objMimeTypes(i) = CreateObject("MimeMap")
objMimeTypes(i).Extension = ".svg"
objMimeTypes(i).MimeType = "image/svg+xml"
i = i+1
ELSE
WScript.Echo("Mime type for .svg already exists")
END IF
IF ( 0 = mimeExists(1) ) THEN
SET objMimeTypes(i) = CreateObject("MimeMap")
objMimeTypes(i).Extension = ".xht"
objMimeTypes(i).MimeType = "application/xhtml+xml"
i=i+1
ELSE
WScript.Echo("Mime type for .xht already exists")
END IF
IF ( 0 = mimeExists(2) ) THEN
SET objMimeTypes(i) = CreateObject("MimeMap")
objMimeTypes(i).Extension = ".xhtml"
objMimeTypes(i).MimeType = "application/xhtml+xml"
ELSE
WScript.Echo("Mime type for .xhtml already exists")
END IF
objMimeMap.PutEx ADS_PROPERTY_UPDATE, "MimeMap", objMimeTypes
objMimeMap.SetInfo()
CASE ELSE
WScript.Echo("Unsupported IIS version")
END SELECT
SUB CheckIfMimeTypeExists(MimeMap)
objMimeTypes = MimeMap.GetEx("MimeMap")
FOR EACH Mime IN objMimeTypes
SELECT CASE LCase(Mime.Extension)
CASE ".svg"
mimeExists(0) = 1
CASE ".xht"
mimeExists(1) = 1
CASE ".xhtml"
mimeExists(2) = 1
END SELECT
NEXT
END SUB