ホスタブルウェブコア API リファレンス
ホスタブルウェブコア (Hostable Web Core, 以下 HWC) を用いると IIS7 の Web サーバのコア機能を、 IIS の既定のプロセスである W3WP.exe 以外にもロードすることができます。
ヘッダーファイルなどでは Hostable Web Core (ホスト可能なウェブコア) という言葉がありますが、
MSDN は Hosted Web Core で統一されているので、当サイトではそちらを使います。
MS の IIS & Web テクノロジ勉強会での内容をうけて、やはり Hostable という言い方に直しました (2/6/2009)
HWC の機能は hwebcore.dll でエクスポートされている WebCoreActivate 関数を 呼ぶことでアクティブ化することができます。シャットダウンする場合は、WebCoreShutdown 関数を呼び出します。
L"hwebcore.dll" | WEB_CORE_DLL_NAME |
"WebCoreActivate" | WEB_CORE_ACTIVATE_DLL_ENTRY |
"WebCoreShutdown" | WEB_CORE_SHUTDOWN_DLL_ENTRY |
WebCoreActivate
typedef HRESULT (*PFN_WEB_CORE_ACTIVATE)( IN PCWSTR pszAppHostConfigFile, IN PCWSTR pszRootWebConfigFile, IN PCWSTR pszInstanceName );
pszAppHostConfigFile - アプリケーション構成ファイルを指定します。 アプリケーション構成ファイルの雛形になるファイルは %SYSTEMROOT%\System32\inetsrv\config ディレクトリの、 applicationHost.config が利用できます。
pszRootWebConfigFile - アプリケーション毎の設定ファイル (Web.config) がある場合は、 ここで指定します。この指定はオプショナルです。使わない場合は L"" を渡します。
pszInstanceName - インスタンス名
戻り値
私の実験の結果以下の値が返ってきました。正確な値は MSDN を参照してください。
S_OK 0 | 成功 |
ERROR_SERVICE_ALREADY_RUNNING 80070420 | 既に実行中です |
ERROR_INVALID_DATA 8007000d | データが不正 構成ファイルが不正である場合等 |
80070057 | パラメータが不正 構成ファイルが見つからない場合等 |
800700b7 | 既に存在するためファイルが作成できない 既にサービスが実行中の場合等 |
80070020 | 他のプロセスで使用中のためファイルにアクセスできない 同じポート番号が既に使用されている等 |
WebCoreShutdown
typedef HRESULT (*PFN_WEB_CORE_SHUTDOWN)( IN DWORD fImmediate );
fImmediate - 直ちにシャットダウンする場合 1 を設定。0 はグレースフルシャットダウン。
戻り値
S_OK | 成功 |
ERROR_SERVICE_NOT_ACTIVE | ホスタブルウェブコアが実行中ではない |
ERROR_INVALID_SERVICE_CONTROL | 既に終了処理中です |
ERROR_SERVICE_REQUEST_TIMEOUT | 処理がタイムアウトしました |
関連ページ
ホスタブルウェブコア (HWC) による IIS7 コア機能のホスト HWC のサンプルコードをわかりやすく書いています。 |