ホスタブルウェブコア 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
表. hwebcore.h で定義されている名前

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 のサンプルコードをわかりやすく書いています。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Web/DB プログラミング徹底解説