IIS 7 のマネージ API の使用
公開日: 2007 年 12 月 22 日 (作業者: walterov (英語))
更新日: 2008 年 3 月 4 日 (作業者: walterov (英語))
はじめに
IIS 7 には、包括的なマネージ コード管理アプリケーション プログラミング インターフェイス (API) が用意されています。この API を使うと、XML 構成ファイルを自由自在に操作したり、サーバー オブジェクトに簡単にアクセスしたりできます。この記事では、サーバー構成の変更やサーバー オブジェクトの管理に使用する新しい管理 API を紹介します。
IIS 7 には、Web サーバー用の新しい管理 API である Microsoft.Web.Administration が含まれます。この管理 API を使うと、XML 構成ファイルを自由自在に操作して構成を編集できます。また、サーバーやサーバーのプロパティ、状態まで管理できる Convenience Object も用意されています。この API の構成編集機能を使うと、IIS 構成ファイル階層や特定の構成ファイルの構成プロパティの読み書きをプログラムによって行えます。この API のオブジェクト管理機能には、サーバーを直接管理する一連の最上位レベルの管理オブジェクト (サイト、アプリケーション プール、ワーカー プロセスなど) が用意されています。
クラスとオブジェクト
管理クラスは、Microsoft.Web.Administration 名前空間に属しています。このクラスの弱く型付けされたインターフェイスを使用して、構成セクションや Convenience Object にアクセスできます。このオブジェクトは、構成の属性 (仮想ディレクトリのパスなど) であるプロパティや、オブジェクトで実行可能なアクション (アプリケーション プールのリサイクルなど) であるメソッドを持っています。
ServerManager は、サーバーの Convenience Object を持つファクトリ クラスです。このオブジェクトのプロパティやメソッドを使用するには、強い型付けを行います。ServerManager は、サーバーを管理するための主なエントリ ポイントです。他の方法でサーバーを管理することもできますが、煩雑な手順が必要になります (構成 XML を直接使用する、状態 API を呼び出すなど)。Convenience Object を使用すると、サーバーをシームレスに管理できます。
サーバー マネージャーによって使用できるごく一般的なオブジェクトには、以下のようなものがあります。
- アプリケーション
- 仮想ディレクトリ
- サイト
- ワーカー プロセス
- アプリケーション ドメイン
ダイアグラム
以下は、主なオブジェクトを示します (構成に関するクラスは除く)。
ServerManager クラスには、種類の異なる複数の構成を取得する方法 (web.config、administration.config など) も用意されており、取得した構成は Configuration クラスとして返されます。このクラスでは、さまざまな XML エンティティを操作して、各種構成設定を管理できます。
Microsoft.Web.Administration API では、一部の主要エンティティのみが強く型付けされたオブジェクト (Site、ApplicationPool、Application など) として公開されるため、他の構成設定を管理するためには弱く型付けされた構成オブジェクト (ConfigurationElement、ConfigurationSection など) を使用する必要があります。このサンプルでは、強く型付けされたオブジェクトとしては公開しない FTP サイトのプロビジョニングの例を示しています。