次の方法で共有


方法 : IIS で HTTP ハンドラ拡張子を構成する

更新 : 2007 年 11 月

既定では、インターネット インフォメーション サービス (IIS: Internet Information Services) は、特定のファイル タイプに対する要求のみを ASP.NET に渡して処理します。.aspx、.asmx、.ashx などのファイル名拡張子を持つファイルは、既に ASP.NET ISAPI 拡張機能 (Aspnet_isapi.dll) にマッピングされています。IIS 6.0、クラシック モードで実行されている IIS 7.0、および統合モードで実行されている IIS 7.0 のマネージ ハンドラが、これの対象となります。

IIS がその他のファイル名拡張子を ASP.NET に渡せるようにするには、拡張子を IIS に登録する必要があります。ハンドラをアプリケーション ライフ サイクルに追加する方法については、「IIS 5.0 および 6.0 における ASP.NET アプリケーションのライフ サイクルの概要」または「IIS 7.0 における ASP.NET アプリケーションのライフ サイクルの概要」を参照してください。

IIS 6.0 でファイル名拡張子をマッピングするには

  1. IIS マネージャを開きます。

  2. Web サーバー コンピュータのノード、[Web サイト]、および [既定の Web サイト] を順に展開します。

  3. アプリケーションの名前を右クリックし、[プロパティ] をクリックします。

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

    ASP.NET アプリケーションの作成方法については、「方法 : IIS 6.0 でローカル ASP.NET Web サイトを作成および構成する」を参照してください。

  4. [仮想ディレクトリ] タブをクリックし、[構成] をクリックします。

  5. [マップ] タブの [追加] をクリックします。

    [アプリケーションの拡張子マッピングの追加/編集] ダイアログ ボックスが表示されます。

  6. [実行可能ファイル] ボックスに Aspnet_isapi.dll ファイルのパスを入力するか、このファイルを参照して指定します。既定では、このファイルは次の場所にあります。

    %windows%\Microsoft.NET\Framework\version\
    
    Bb515343.alert_note(ja-jp,VS.90).gifメモ :

    .aspx ファイルへのマップなどの他のマップから、完全なパスおよびファイル名を取得できます。

  7. [拡張子] ボックスに、.sample などのファイル名の拡張子を入力します。

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

    ファイル名拡張子には、必ずドット (.) を含めてください。

  8. アプリケーションにおいてファイル名拡張子が何を表すかに応じて、[ファイルの存在を確認する] チェック ボックスをオンまたはオフにします。次のオプションのいずれかを選択します。

    • True. アプリケーションにおいてファイル名拡張子が物理ファイルを表します。この場合、要求されたファイルがディスクに存在しないと、IIS によりエラーが表示されます。

    • False. ファイル名拡張子は物理ファイルを表しません。代わりに、拡張子は、その拡張子にマッピングされているクラスにより ASP.NET において動的に処理されます。

  9. [OK] をクリックし、IIS マネージャを閉じます。

クラシック モードで実行されている IIS 7.0 でファイル名拡張子をマッピングするには

  1. IIS マネージャを開きます。

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

    および Windows Server 2008 で、ユーザー アカウント制御 (UAC: User Account Control) 機能が有効になっている場合、マネージャへのアクセス続行を要求するメッセージが表示されます。詳細については、「ユーザー アカウント制御の概要」を参照してください。

  2. Web サーバー コンピュータのノード、[サイト]、および [既定の Web サイト] を順に展開します。

  3. アプリケーションのノードを選択します。

    [機能ビュー] ペインが表示されます。

  4. [機能ビュー] で、[ハンドラ マッピング] をダブルクリックします。

  5. [操作] ペインで、[スクリプト マップの追加] をクリックします。

    [スクリプト マップの追加] ダイアログ ボックスが表示されます。

  6. [スクリプト マップの追加] ダイアログ ボックスで、以下のオプションを指定します。

    • [要求パス]。マッピングする名前またはファイル名拡張子。

    • [実行可能ファイル]。要求を処理する .exe ファイルまたは .dll ファイルのパス。クラシック モードの場合、ASP.NET ISAPI 拡張機能 (Aspnet_isapi.dll) を指定します。

    • [名前]。説明的な名前。

  7. [OK] をクリックして、[スクリプト マップの追加] ダイアログ ボックスを閉じます。

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

    IIS 7.0 で IIS マネージャを使用してカスタム ハンドラ拡張子を追加することは、ASP.NET アプリケーションの Web.config ファイルでハンドラ拡張子を登録することと同じ効果があります。登録では、system.webServer グループの handlers セクションに handler 要素を追加します。

  8. アプリケーションの Web.config ファイルを開きます。

  9. system.web セクションの httpHandlers 要素を探して、ファイル名拡張子のエントリを追加します。

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

    ファイル名拡張子は httpHandlers 要素と handlers 要素の両方に登録する必要があります。

統合モードで実行されている IIS 7.0 でファイル名拡張子をマッピングするには

  1. 前の手順の手順 1. ~ 3. を実行します。

  2. [アクション] ペインで、[マネージ ハンドラの追加] をクリックします。

    [マネージ ハンドラの追加] ダイアログ ボックスが表示されます。

  3. [マネージ ハンドラの追加] ダイアログ ボックスで、以下のオプションを指定します。

    • [要求パス]。マッピングするファイル名またはファイル名拡張子。

    • [型]。マネージ ハンドラの型 (クラス) の名前。ASP.NET アプリケーションの App_Code フォルダにハンドラが定義されている場合、ハンドラの型の名前がドロップダウン リストに表示されます。

    • [名前]。説明的な名前。

  4. [OK] をクリックして、[マネージ ハンドラの追加] ダイアログ ボックスを閉じます。

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

    IIS 7.0 で IIS マネージャを使用してカスタム ハンドラ拡張子を追加することは、Web.config ファイルでハンドラ拡張子を登録することと同じ効果があります。

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

    統合モードで実行されている IIS 7.0 においてカスタム拡張子を処理するハンドラの場合、必要な操作は handlers 要素への登録のみです。httpHandlers 要素への登録も保持する場合は、system.webServer セクションに validation 要素を作成し (存在しない場合)、その要素の validateIntegratedModeConfiguration 属性を false に設定します。詳細については、「方法 : IIS 7.0 の登録に関する警告を抑制する」を参照してください。

参照

処理手順

方法 : HTTP ハンドラを登録する