チュートリアル: ホストされた Web コア用の構成ファイルの作成
このチュートリアルでは、IIS 7 で使用できるホスト型 Web Core 機能で使用する構成ファイルを作成する方法について説明します。
IIS 7 でホステッド Web Core 機能を使用するアプリケーションを作成する場合は、ApplicationHost.config ファイルの形式に従うカスタム構成ファイルを指定する必要があります。 構成設定に応じて、アプリケーションは、IIS 7 を使用する Web サイトをホストしているのと同じサーバー上で Web ページとアプリケーションをホストできます。 たとえば、Web サーバーに TCP ポート 80 上の Web ページを提供する Web サイトが 1 つしかない場合は、TCP ポート 8080 で Web ページを提供するようにアプリケーションを構成できます。
アプリケーションにはカスタム構成ファイルが必要であるため、Web サイトと Hosted Web Core アプリケーションは同じ機能設定を共有しません。 たとえば、アプリケーションで必要ない動的機能を実装するように Web サイトを構成したり、Web サイトで使用されていない特定の認証方法を要求するようにアプリケーションを構成したりできます。
IIS 7 のApplicationHost.config ファイルに複数のアプリケーション プールが含まれている場合でも、IIS 7 のホステッド Web コア機能は 1 つのアプリケーション プールのみをサポートします。
必須コンポーネント
この例の手順を完了するには、次のソフトウェアが必要です。
- Windows Vista 上の IIS 7。
注意
Windows Vista でホスト型 Web Core アプリケーションを実行する必要はできますが、Windows Vista で構成ファイルを作成する必要はありません。 別のバージョンの Windows で構成ファイルを作成し、構成ファイルを Windows Vista がインストールされているコンピューターにコピーできます。
- Visual Studio 2005:
注意
Visual Studio .NET 2003 以前を使用することもできますが、チュートリアルの手順は同じではない可能性があります。
構成ファイルの作成
このチュートリアルのこの部分の手順は、静的コンテンツを提供するために必要な設定を含む Hosted Web Core アプリケーションで使用する新しい構成ファイルを作成するのに役立ちます。
構成ファイルを作成するには
Visual Studio 2005 を起動します。
新しい構成ファイルを作成します。
[ファイル] メニューの [新規作成] をポイントし、 [ファイル] をクリックします。
[ 新しいファイル ] ダイアログ ボックスが開きます。
[カテゴリ] ペインで [全般] をクリックします。
[テンプレート] ペインで、 [XML ファイル] を選択します。
[開く] をクリックします。
新しい XML ファイルが開き、次の XML コードが表示されます。
<?xml version="1.0" encoding="UTF-8"?>
この XML ファイルをアプリケーションの構成ファイルとして識別するには、 要素の下に次の XML コードを
<?xml?>
追加します。<configuration> </configuration>
構成セクションの定義
構成ファイルが作成されたら、構成ファイルに含める構成セクションを定義する必要があります。 これを行うには、構成ファイルに <configSections>
要素を追加します。
configSections セクションを>追加<するには
構成ファイルに含めるセクションを定義するセクションを作成するには、 要素内に次の XML コードを
<configuration>
追加します。<configSections> </configSections>
セクションに含める情報を
<system.applicationHost>
定義するには、 要素内に次の XML コードを<configSections>
追加します。<sectionGroup name="system.applicationHost" type="System.ApplicationHost.Configuration.SystemApplicationHostSectionGroup"> <section name="applicationPools" type="System.ApplicationHost.Configuration.ApplicationPoolsSection" allowDefinition="MachineOnly" overrideModeDefault="Deny" /> <section name="listenerAdapters" type="System.ApplicationHost.Configuration.ListenerAdaptersSection" allowDefinition="MachineOnly" overrideModeDefault="Deny" /> <section name="log" type="System.ApplicationHost.Configuration.LogSection" allowDefinition="MachineOnly" overrideModeDefault="Deny" /> <section name="sites" type="System.ApplicationHost.Configuration.SitesSection" allowDefinition="MachineOnly" overrideModeDefault="Deny" /> </sectionGroup>
セクションに含める情報を
<system.applicationHost>
定義するには、 要素内に次のコードを<configSections>
追加します。<sectionGroup name="system.webServer" type="System.WebServer.Configuration.SystemWebServerSectionGroup"> <section name="defaultDocument" type="System.WebServer.Configuration.DefaultDocumentSection" overrideModeDefault="Allow" /> <section name="directoryBrowse" type="System.WebServer.Configuration.DirectoryBrowseSection" overrideModeDefault="Allow" /> <section name="globalModules" type="System.WebServer.Configuration.GlobalModulesSection" allowDefinition="MachineOnly" overrideModeDefault="Deny" /> <section name="handlers" type="System.WebServer.Configuration.HandlersSection" overrideModeDefault="Deny" /> <section name="httpLogging" type="System.WebServer.Configuration.HttpLoggingSection" overrideModeDefault="Deny" /> <section name="modules" type="System.WebServer.Configuration.ModulesSection" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> <sectionGroup name="security" type="System.WebServer.Configuration.SecuritySectionGroup"> <section name="access" type="System.WebServer.Configuration.AccessSection" overrideModeDefault="Deny" /> <sectionGroup name="authentication" type="System.WebServer.Configuration.AuthenticationSectionGroup"> <section name="anonymousAuthentication" type="System.WebServer.Configuration.AnonymousAuthenticationSection" overrideModeDefault="Allow" /> </sectionGroup> </sectionGroup> <section name="staticContent" type="System.WebServer.Configuration.StaticContentSection" overrideModeDefault="Deny" /> </sectionGroup>
system.applicationHost> 設定の<追加
構成ファイルに含めるセクションを定義したら、アプリケーションに必要な設定を構成セクションに設定する必要があります。
system.applicationHost> セクションを<追加するには
セクションを
<system.applicationHost>
構成ファイルに追加するには、 要素内に次の XML コードを<configuration>
追加します。<system.applicationHost> </system.applicationHost>
アプリケーション プールを作成するには、 要素内に次の XML コードを
<system.applicationHost>
追加します。<applicationPools> <add name="TestAppPool" /> <applicationPoolDefaults> <processModel identityType="NetworkService" /> </applicationPoolDefaults> </applicationPools>
HTTP のリスナー アダプターを定義するには、 要素内に次の XML コードを
<system.applicationHost>
追加します。<listenerAdapters> <add name="http" /> </listenerAdapters>
Web サイトを作成するには、 要素内に次の XML コードを
<system.applicationHost>
追加します。<sites> <site name="Test Web Site" id="1"> <application path="/"> <virtualDirectory path="/" physicalPath="D:\inetpub\TestPath\wwwroot" /> </application> <bindings> <binding protocol="HTTP" bindingInformation="*:8080:" /> </bindings> </site> <siteDefaults> <logFile directory="D:\inetpub\TestPath\Logs" /> </siteDefaults> <applicationDefaults applicationPool="TestAppPool" /> <virtualDirectoryDefaults allowSubDirConfig="true" /> </sites>
注意
アプリケーションに応じて、XML 設定でファイル パスとサーバー バインドを変更できます。
system.webServer 設定の<>追加
system.webServer> セクションを<追加するには
セクションを
<system.webServer>
構成ファイルに追加するには、 要素内に次の XML コードを<configuration>
追加します。<system.webServer> </system.webServer>
アプリケーションで使用するグローバル モジュールを定義するには、 要素内に次の XML コードを
<system.webServer>
追加します。<globalModules> <add name="DefaultDocumentModule" image="D:\Windows\system32\inetsrv\defdoc.dll" /> <add name="DirectoryListingModule" image="D:\Windows\system32\inetsrv\dirlist.dll" /> <add name="StaticFileModule" image="D:\Windows\system32\inetsrv\static.dll" /> <add name="AnonymousAuthenticationModule" image="D:\Windows\system32\inetsrv\authanon.dll" /> <add name="HttpLoggingModule" image="D:\Windows\system32\inetsrv\loghttp.dll" /> </globalModules>
アプリケーションで使用するハンドラーを定義するには、 要素内に次の XML コードを
<system.webServer>
追加します。<handlers> <add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" /> </handlers>
アプリケーションで使用するモジュールを定義するには、 要素内に次の XML コードを
<system.webServer>
追加します。<modules> <add name="DefaultDocumentModule" /> <add name="DirectoryListingModule" /> <add name="StaticFileModule" /> <add name="AnonymousAuthenticationModule" /> <add name="HttpLoggingModule" /> </modules>
ディレクトリ参照オプションと HTTP ログ オプションを定義するには、 要素内に次の XML コードを
<system.webServer>
追加します。<directoryBrowse enabled="true" /> <httpLogging dontLog="false" />
既定のドキュメントを有効にするには、 要素内に次の XML コードを
<system.webServer>
追加します。<defaultDocument enabled="true"> <files> <add value="default.htm" /> </files> </defaultDocument>
アプリケーションで実装する MIME の種類を定義するには、 要素内に次の XML コードを
<system.webServer>
追加します。<staticContent> <mimeMap fileExtension=".gif" mimeType="image/gif" /> <mimeMap fileExtension=".htm" mimeType="text/html" /> <mimeMap fileExtension=".jpg" mimeType="image/jpeg" /> <mimeMap fileExtension=".txt" mimeType="text/plain" /> </staticContent>
注意
さらに要素を追加することで、アプリケーションに応じて MIME の種類を追加
<mimeMap>
できます。アプリケーションのセキュリティ オプションを定義するには、 要素内に次の XML コードを
<system.webServer>
追加します。<security> <access flags="Read" sslFlags="None" /> <authentication> <anonymousAuthentication enabled="true" userName="IUSR" defaultLogonDomain="" /> </authentication> </security>
上記のすべての手順を完了したら、Hosted Web Core アプリケーションがアクセスできるパスに構成ファイルを保存する必要があります。
構成ファイルのセクションが正しく定義されていない場合、アプリケーションでエラーが発生する可能性があります。 エラーによっては、サーバーのイベント ビューアー ログと、アプリケーションによって自動的に作成される IIS ログ ファイルを調べることで、問題に関する追加情報を取得できる場合があります。 ホスト型 Web Core アプリケーションに関する問題のトラブルシューティングの詳細については、「 チュートリアル: ホスト型 Web Core アプリケーションの作成」に記載されているトラブルシューティング手順を参照してください。