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


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

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

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

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

  • Настройка параметра срока действия содержимого
  • Регистрация типов MIME и расширения файлов
ПримечаниеПримечание

Можно проверить строку 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

ПримечаниеПримечание

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

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

' 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
ПримечаниеПримечание

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

После выполнения этого скрипта дополнительные типы MIME могут быть не видны из служб Microsoft Internet Information Services (IIS) 5.0 или Microsoft Internet Information Services (IIS) 6.0 Microsoft Management Console (MMC). Однако эти типы MIME были добавлены в метабазу служб Microsoft Internet Information Services (IIS) 5.0 или Microsoft Internet Information Services (IIS) 6.0. Следующий скрипт отобразит все типы MIME метабазы Microsoft Internet Information Services (IIS) 5.0 или Microsoft Internet Information Services (IIS) 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