方法 : WPF アプリケーションを配置するように IIS 5.0 および IIS 6.0 を構成する

更新 : 2007 年 11 月

適切な Multipurpose Internet Mail Extensions (MIME) タイプを使用して構成されていれば、ほとんどの Web サーバーから Windows Presentation Foundation (WPF) アプリケーションを配置することができます。既定では、Microsoft インターネット インフォメーション サービス (IIS) 7.0 はこれらの MIME タイプを使用して構成されますが、Microsoft インターネット インフォメーション サービス (IIS) 5.0 や Microsoft インターネット インフォメーション サービス (IIS) 6.0 は使用しません。

ここでは、Microsoft インターネット インフォメーション サービス (IIS) 5.0 および Microsoft インターネット インフォメーション サービス (IIS) 6.0 を構成して WPF アプリケーションを配置する方法について説明します。

このトピックには次のセクションが含まれています。

  • コンテンツの有効期限の設定を調整する
  • MIME タイプとファイル拡張子を登録する
ms752346.alert_note(ja-jp,VS.90).gifメモ :

レジストリ内の UserAgent 文字列をチェックして、システムに .NET Framework がインストールされているかどうかを確認します。詳細情報と UserAgent 文字列を調べてシステムに .NET Framework がインストールされているかどうかを確認するスクリプトについては、「方法 : .NET Framework 3.0 がインストールされているかどうかを確認する」を参照してください。

コンテンツの有効期限の設定を調整する

コンテンツの有効期限の設定を 1 分に調整する必要があります。次の手順では、IIS を使用して調整する方法について説明します。

  1. [Start] ボタンをクリックし、[Administrative Tools] をポイントして、[Internet Information Services (IIS) Manager] をクリックします。このアプリケーションは、コマンド ラインで、「%SystemRoot%\system32\inetsrv\iis.msc」と入力して起動することもできます。

  2. [Default Web site] ノードが見つかるまで IIS ツリーを展開します。

  3. [Default Web site] を右クリックし、コンテキスト メニューの [Properties] をクリックします。

  4. [HTTP Headers] タブをクリックし、[Enable Content Expiration] チェック ボックスをオンにします。

  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

ms752346.alert_note(ja-jp,VS.90).gifメモ :

クライアント システムに、MIME タイプとファイル拡張子を登録する必要はありません。これらは、Microsoft .NET Framework のインストール時に自動的に登録されます。

次の Microsoft Visual Basic Scripting Edition (VBScript) のサンプルでは、必要な 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(ja-jp,VS.90).gifメモ :

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

このスクリプトを実行しても、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