IIS ホスト サービスのエラー
IIS によってホストされているサービスにエラーが発生すると、次の現象が見られます。
.svc ファイルを参照すると、このファイルが認識されないか、ブラウザで空白ページが表示される、またはサービスのヘルプ ページの代わりにファイルのテキストが表示されます。次の例を参照してください。
<%@ServiceHost language=c# Debug="true" Service="Microsoft.ServiceModel.Samples.CalculatorService" %>
Web ホスト サービスにアクセスしようとすると、次の例外が発生する場合があります。
Unhandled Exception: System.ServiceModel.ProtocolException: The remote server returned an unexpected response: (405) Method not allowed.
これは通常、ASP.NET がインストールされていないか、または .svc ファイルが aspnet_isapi.dll にマッピングされていない場合に発生します。
これを修正するには、aspnet_isapi が IIS の Web サービス拡張として有効になっているか確認する必要があります。この設定を表示して変更するには、IIS マネージャを使用するか、.NET Framework のインストール ディレクトリから aspnet_regiis –i –enable
を実行します。この作業を完了したら、ASP.NET が実行されていることを確認します。これを行うには、test.aspx ファイルを \inetpub\wwwroot ディレクトリに配置し、このファイルをブラウザで表示できることを確認します。
Windows Communication Foundation (WCF) のインストール後に IIS をインストールした場合、次のコマンドを実行する必要があります。
"%WINDIR%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r
これにより、必要なスクリプト マッピングが IIS に登録されます。
さらに、.svc ファイルが aspnet_isapi.dll にマッピングされていることを確認する必要があります。
IIS 5.1 または 6.0 で、.svc ファイルが aspnet_isapi.dll によって処理されるようにマッピングされていることを検証するには
コントロール パネルの [Computer Management] を開きます。
[Services and Applications] の [Internet Information Services] を展開します。
[Web Sites] を右クリックし、[Properties] をクリックします。
[Home Directory] タブの [Configuration] をクリックします。
アプリケーション マッピングの一覧で、.svc ファイルが aspnet_isapi.dll にマッピングされていることを確認します。ファイルがマッピングされていない場合は、次の手順を実行します。
[Add] をクリックします。
[Add/Edit Application Extension Mapping] ダイアログ ボックスで、[Browse] をクリックします。
aspnet_isapi.dll を含むフォルダを参照し、[Open] をクリックします。
拡張子に .svc を指定します。
[Check that file exists] チェック ボックスがオフになっていることを確認します。
[OK] をクリックしてもう一度 [OK] をクリックし、[Web Sites Properties] ダイアログ ボックスに戻ります。
[OK] をクリックし、ダイアログ ボックスを閉じます。
IIS 7.0 で、.svc ファイルが正しくマッピングされていることを検証するには
コマンド プロンプト ウィンドウを開き、「start inetmgr」と入力して、インターネット インフォメーション サービス (IIS) MMC スナップインを開きます。
左のウィンドウで、コンピュータ名のノード、[Web Sites] ノードの順に展開し、[Default Web Site] を選択します。
[Features View] で [Handler mappings] をダブルクリックします。
アプリケーション マッピングの一覧で、.svc ファイルが aspnet_isapi.dll にマッピングされていることを確認します。ファイルがマッピングされていない場合は、次の手順を実行します。
[Add Managed Handler] をクリックします。
[Request path:] に「*.svc」と入力します。
[Type] ボックスに「System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089」と入力します。
[Name:] ボックスに「svc-Integrated」と入力します。
[OK] をクリックします。
[Add Script Map] をクリックします。
[Request path:] に「*.svc」と入力します。
[Executable:] ボックスに「%SystemRoot%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll」と入力します。
[Name:] ボックスに「svc-ISAPI-2.0」と入力します。
[OK] をクリックします。
関連項目
概念
インターネット インフォメーション サービスのホスティング手順
Copyright © 2007 by Microsoft Corporation.All rights reserved.