Поделиться через


Практическое руководство. Настройка служб IIS 5.0 и IIS 6.0 для развертывания приложений WPF

Обновлен: Ноябрь 2007

Можно развертывать приложение Windows Presentation Foundation (WPF) с большинства веб-серверов, если они настроены с соответствующими типамиСтандарт MIME (Multipurpose Internet Mail Extensions — многоцелевые расширения почты Интернета). По умолчанию конфигурация службы Службы Microsoft Internet Information Services версии 7.0 содержит типы MIME, в отличие от служб Службы Microsoft Internet Information Services версии (IIS) 5.0 и Службы Microsoft Internet Information Services версии 6.0.

В этом разделе описывается настройка служб Службы Microsoft Internet Information Services версии (IIS) 5.0 и Службы Microsoft Internet Information Services версии 6.0для развертывания приложений WPF.

В этом разделе содержатся следующие подразделы.

  • Настройка параметра срока действия содержимого
  • Регистрация типов MIME и расширения файлов
ms752346.alert_note(ru-ru,VS.90).gifПримечание.

Можно проверить строку UserAgent в реестре, чтобы определить, установлен ли .NET Framework в системе. Сведения и сценарий, проверяющий по записи UserAgent наличие в системе установленного .NET Framework, см. в разделеПрактическое руководство. Обнаружение установленной платформы .NET Framework 3.0.

Настройка параметра срока действия содержимого

Следует установить параметр срока действия содержимого на 1 минуту. В следующей процедуре показано, как это сделать с помощью службы IIS.

  1. Выберите в меню Пуск пункт Администрирование и щелкните строку Диспетчер служб IIS. Кроме этого, приложение можно запустить, набрав в командной строке «%SystemRoot%\system32\inetsrv\iis.msc».

  2. Разворачивайте дерево IIS, пока не найдете узел Используемый по умолчанию веб-узел.

  3. Щелкните правой кнопкой мыши используемый по умолчанию веб-узел и выберите пункт Свойства из контекстного меню.

  4. Откройте вкладку Заголовки HTTP и нажмите кнопку «Активировать срок действия содержимого».

  5. Установите срок действия содержимого, равным одной минуте.

Регистрация типов MIME и расширения файлов

Несколько типов MIME и расширения файлов необходимо зарегистрировать таким образом, чтобы обозреватель на клиентской системе мог загрузить правильный обработчик. Нужно добавить следующие типы:

Расширение

Тип MIME

.manifest

application/manifest

.xaml

application/xaml+xml

.application

application/x-ms

.xbap

application/x-ms-xbap

.deploy

application/octet-stream

.XPS

application/vnd.ms-xpsdocument

ms752346.alert_note(ru-ru,VS.90).gifПримечание.

Регистрировать типы MIME или расширения файлов в клиентских системах необязательно. Они регистрируются автоматически при установке Microsoft .NET Framework.

Следующий образец Язык сценариев Microsoft VBScript (Microsoft Visual Basic Scripting Edition) автоматически добавляет необходимые типы MIME в службу IIS. Чтобы использовать сценарий, скопируйте код в VBS-файл на сервере. Затем выполните сценарий, запустив файл из командной строки или дважды щелкнув файл в Проводник Microsoft Windows.

' This script adds the necessary Windows Presentation Foundation MIME types 
' to an IIS Server.
' To use this script, just double-click or execute it from a command line.
' Running this script multiple times results in multiple entries in the IIS MimeMap.

Dim MimeMapObj, MimeMapArray, MimeTypesToAddArray, WshShell, oExec
Const ADS_PROPERTY_UPDATE = 2 

' Set the MIME types to be added
MimeTypesToAddArray = Array(".manifest", "application/manifest", ".xaml", _
    "application/xaml+xml", ".application", "application/x-ms-application", _
    ".deploy", "application/octet-stream", ".xbap", "application/x-ms-xbap", _
    ".xps", "application/vnd.ms-xpsdocument") 

' Get the mimemap object 
Set MimeMapObj = GetObject("IIS://LocalHost/MimeMap")

' Call AddMimeType for every pair of extension/MIME type
For counter = 0 to UBound(MimeTypesToAddArray) Step 2
    AddMimeType MimeTypesToAddArray(counter), MimeTypesToAddArray(counter+1)
Next

' Create a Shell object
Set WshShell = CreateObject("WScript.Shell")

' Stop and Start the IIS Service
Set oExec = WshShell.Exec("net stop w3svc")
Do While oExec.Status = 0
    WScript.Sleep 100
Loop

Set oExec = WshShell.Exec("net start w3svc")
Do While oExec.Status = 0
    WScript.Sleep 100
Loop

Set oExec = Nothing

' Report status to user
WScript.Echo "Windows Presentation Foundation MIME types have been registered."

' AddMimeType Sub
Sub AddMimeType (Ext, MType)

    ' Get the mappings from the MimeMap property. 
    MimeMapArray = MimeMapObj.GetEx("MimeMap") 

    ' Add a new mapping. 
    i = UBound(MimeMapArray) + 1 
    Redim Preserve MimeMapArray(i) 
    Set MimeMapArray(i) = CreateObject("MimeMap") 
    MimeMapArray(i).Extension = Ext 
    MimeMapArray(i).MimeType = MType 
    MimeMapObj.PutEx ADS_PROPERTY_UPDATE, "MimeMap", MimeMapArray
    MimeMapObj.SetInfo
    
End Sub
ms752346.alert_note(ru-ru,VS.90).gifПримечание.

При многократном запуске сценария создастся множество MIME записей сопоставления в метабазе Службы Microsoft Internet Information Services версии (IIS) 5.0 или Службы Microsoft Internet Information Services версии 6.0.

После выполнения этого сценария дополнительные типы MIME могут быть не видны из служб Службы Microsoft Internet Information Services версии (IIS) 5.0 или Службы Microsoft Internet Information Services версии 6.0 MMC (консоль управления). Однако эти типы MIME были добавлены в метабазу служб Службы Microsoft Internet Information Services версии (IIS) 5.0 или Службы Microsoft Internet Information Services версии 6.0. Следующий сценарий отобразит все типы MIME метабазы Службы Microsoft Internet Information Services версии (IIS) 5.0 или Службы Microsoft Internet Information Services версии 6.0.

' This script lists the MIME types for an IIS Server.
' To use this script, just double-click or execute it from a command line 
' by calling cscript.exe

dim mimeMapEntry, allMimeMaps

' Get the mimemap object.
Set mimeMapEntry = GetObject("IIS://localhost/MimeMap")
allMimeMaps = mimeMapEntry.GetEx("MimeMap")

' Display the mappings in the table.
For Each mimeMap In allMimeMaps
    WScript.Echo(mimeMap.MimeType & " (" & mimeMap.Extension + ")")
Next

Сохраните сценарий в виде файла с расширением .vbs (например, DiscoverIISMimeTypes.vbs) и запустите его из командной строки с помощью следующей команды:

cscript DiscoverIISMimeTypes.vbs