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

Можете развернуть приложение Windows Presentation Foundation (WPF) с большинства веб-серверов, если они настроены с соответствующими типами расширений MIME. По умолчанию с этими типами MIME настраивается Microsoft IIS 7.0, но не Microsoft IIS 5.0 и Microsoft IIS 6.0.

В этом разделе описывается настройка Microsoft IIS 5.0 и Microsoft IIS 6.0 для развертывания приложений WPF.

Примечание.

Можно проверить строку 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/x-ms-application
.xbap application/x-ms-xbap
выполнить развертывание. application/octet-stream
.xps application/vnd.ms-xpsdocument

Примечание.

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

Следующий пример Microsoft Visual Basic Scripting Edition (VBScript) автоматически добавляет в IIS необходимые типы MIME. Чтобы использовать скрипт, скопируйте код в 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

Примечание.

Выполнение этого скрипта несколько раз создает несколько записей карты MIME в метабазе Microsoft IIS 5.0 или Microsoft IIS 6.0.

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