Gewusst wie: Konfigurieren von IIS 5.0 und IIS 6.0, um WPF-Anwendungen bereitzustellen

Sie können eine WPF-Anwendung (Windows Presentation Foundation) aus den meisten Webservern bereitstellen, solange sie mit den entsprechenden MIME-Typen (Multipurpose Internet Mail Extensions, MIME) konfiguriert sind. Standardmäßig ist Microsoft-Internetinformationsdienste (IIS) 7.0 mit diesen MIME-Typen konfiguriert, Microsoft-Internetinformationsdienste (IIS) 5.0 und Microsoft-Internetinformationsdienste (IIS) 6.0 sind es jedoch nicht.

In diesem Thema wird beschrieben, wie Sie Microsoft-Internetinformationsdienste (IIS) 5.0 und Microsoft-Internetinformationsdienste (IIS) 6.0 konfigurieren, um WPF-Anwendungen bereitzustellen.

Hinweis

Sie können die UserAgent-Zeichenfolge in der Registrierung überprüfen, um zu ermitteln, ob auf einem System .NET Framework installiert ist. Ausführliche Informationen und ein Skript, das die UserAgent-Zeichenfolge überprüft, um zu ermitteln, ob auf einem System .NET Framework installiert ist, finden Sie unter Gewusst wie: Erkennen einer .NET Framework 3.0-Installation.

Anpassen der Einstellung für die Gültigkeitsdauer des Inhalts

Sie sollten die Einstellung für die Inhaltsgültigkeitsdauer auf 1 Minute setzen. Die folgende Prozedur zeigt, wie Sie dies in IIS erreichen.

  1. Klicken Sie auf das Menü Start, zeigen Sie auf Verwaltung, und klicken Sie anschließend auf Internetinformationsdienste-Manager. Sie können diese Anwendung auch über die Befehlszeile starten, indem Sie den Befehl „%SystemRoot%\system32\inetsrv\iis.msc“ verwenden.

  2. Erweitern Sie die IIS-Struktur, bis Sie den Knoten Standardwebsite gefunden haben.

  3. Klicken Sie mit der rechten Maustaste auf Standardwebsite, und wählen Sie im Kontextmenü den Befehl Eigenschaften aus.

  4. Wählen Sie die Registerkarte HTTP-Header, und klicken Sie auf „Inhalt läuft ab und wird ungültig“.

  5. Setzen Sie die Ablaufzeit auf 1 Minute.

Registrieren von MIME-Typen und -Dateierweiterungen

Sie müssen mehrere MIME-Typen und -Dateierweiterungen registrieren, damit der Browser auf dem Clientsystem den richtigen Handler laden kann. Sie müssen die folgenden Typen hinzufügen:

Durchwahl MIME-Typ
.manifest application/manifest
XAML application/xaml+xml
APPLICATION application/x-ms-application
XBAP application/x-ms-xbap
DEPLOY application/octet-stream
.xps application/vnd.ms-xpsdocument

Hinweis

Sie müssen auf Clientsystemen keine MIME-Typen oder -Dateierweiterungen registrieren. Sie werden automatisch registriert, wenn Sie Microsoft .NET Framework installieren.

Im folgenden Beispiel für Microsoft Visual Basic Scripting Edition (VBScript) werden IIS automatisch die erforderlichen MIME-Typen hinzugefügt. Um das Skript zu verwenden, kopieren Sie den Code in eine VBS-Datei auf dem Server. Führen Sie das Skript dann aus, indem Sie die Datei über die Befehlszeile oder durch Doppelklicken auf die Datei im Microsoft Windows-Explorer ausführen.

' 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

Hinweis

Wenn Sie dieses Skript mehrmals ausführen, werden mehrere MIME-Zuordnungseinträge in der Metabasis von Microsoft-Internetinformationsdienste (IIS) 5.0 oder Microsoft-Internetinformationsdienste (IIS) 6.0 erstellt.

Nachdem Sie dieses Skript ausgeführt haben, sehen Sie möglicherweise keine zusätzlichen MIME-Typen in der Microsoft Management Console (MMC) für Microsoft-Internetinformationsdienste (IIS) 5.0 oder Microsoft-Internetinformationsdienste (IIS) 6.0. Diese MIME-Typen wurden der Metabasis von Microsoft-Internetinformationsdienste (IIS) 5.0 oder Microsoft-Internetinformationsdienste (IIS) 6.0 jedoch hinzugefügt. Das folgende Skript zeigt alle MIME-Typen in der Metabasis von Microsoft-Internetinformationsdienste (IIS) 5.0 oder Microsoft-Internetinformationsdienste (IIS) 6.0 an.

' 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

Speichern Sie das Skript als .vbs-Datei (z. B. DiscoverIISMimeTypes.vbs), und führen Sie es an der Eingabeaufforderung aus, indem Sie den folgenden Befehl verwenden:

cscript DiscoverIISMimeTypes.vbs