次の方法で共有


方法: IIS 5.0 と IIS 6.0 を構成して WPF アプリケーションを展開する

Windows Presentation Foundation (WPF) アプリケーションは、適切な多目的インターネット メール拡張機能 (MIME) の種類で構成されている限り、ほとんどの Web サーバーから展開できます。 既定では、Microsoft インターネット インフォメーション サービス (IIS) 7.0 はこれらの MIME の種類で構成されますが、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) マネージャー] をクリックします。 "\system32\inetsrv\iis.msc"%SystemRoot%コマンド ラインからこのアプリケーションを起動することもできます。

  2. 既定の Web サイト ノードが見つかるまで IIS ツリーを展開します。

  3. 既定の Web サイト 右クリックし、コンテキスト メニューから [プロパティ] 選択します。

  4. [HTTP ヘッダー] タブを選択し、[コンテンツの有効期限を有効にする] をクリックします。

  5. コンテンツを 1 分後に期限切れに設定します。

MIME の種類とファイル拡張子を登録する

クライアントのシステム上のブラウザーが正しいハンドラーを読み込むことができるように、いくつかの MIME の種類とファイル拡張子を登録する必要があります。 次の種類を追加する必要があります。

拡張子 MIME の種類
.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

手記

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

手記

このスクリプトを複数回実行すると、Microsoft インターネット インフォメーション サービス (IIS) 5.0 または Microsoft インターネット インフォメーション サービス (IIS) 6.0 メタベースに複数の MIME マップ エントリが作成されます。

このスクリプトを実行すると、Microsoft インターネット インフォメーション サービス (IIS) 5.0 または Microsoft インターネット インフォメーション サービス (IIS) 6.0 Microsoft 管理コンソール (MMC) から追加の MIME の種類が表示されないことがあります。 ただし、これらの MIME の種類は、Microsoft インターネット インフォメーション サービス (IIS) 5.0 または Microsoft インターネット インフォメーション サービス (IIS) 6.0 メタベースに追加されています。 次のスクリプトでは、Microsoft インターネット インフォメーション サービス (IIS) 5.0 または Microsoft インターネット インフォメーション サービス (IIS) 6.0 メタベースのすべての MIME の種類が表示されます。

' 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