【IIS7】 あまり知られていない IIS 7.0 Hostable WebCore
まあ、興味があれば下記の一連の記事を読んでいただきたいのですが、今までに”Cassini”で何かをしようとした深いHTTP実装をしたいと思ったハイレベルな方々には興味のある話だと思います。とっても開発者な話ですが一応IIS関連ですので私のブログでも書くことにしましょう。
要約しておくと、IIS7はモジュール化しただけでなく、そのコアですら w3wp.exe 以外のプロセスで利用できる hwebcore.dll という実装になっています。当然のことながら applicationHost.config や ルートの web.config は独自のパスで独自に運用できる構造になります。
Host your own Web Server in your application using IIS 7.0 Hostable Web Core
https://blogs.iis.net/carlosag/archive/2008/04/14/host-your-own-web-server-in-your-application-using-iis-7-0-hostable-web-core.aspx
Ins & Outs of hostable web core
https://blogs.iis.net/ksingla/archive/2007/12/20/ins-amp-outs-of-hostable-web-core.aspx
そもそもなんで IIS 自身を使わないで自分の実行プロセスで IIS要素を動かしたいのかという点についてはこのブログ投稿でもいくつかシナリオを挙げていますのでここで翻訳しておきます。
1.たぶん もっとも有用な使い方は、管理者でないユーザーがアプリケーションを開発する環境として他のサーバー機能に直接的に影響を与えずに開発やデバッグを行うことができること。
2.デモとかトライアルCDのようなものを作りたい場合にユーザーが自身の環境では本当のWebサーバーをインストールせずにいきなりWebアプリケーションのデモが起動してライブで見ることができるような実装をしたい。
3.テスト ドリブン 開発。実際のWebサーバーでの試験というのは基本的にそのマシンの状態に影響を与えることが多いです。テスト実施者は基本的にマニュアルで構成をするようなことを気にせずに隔離された環境で本来アプリケーションをテストしたいはずです。この機能を利用すると自身の専用システム構成を保持でき、自動テストの一部をハードコードすることができます。サーバーやサイトの状況を毎回セットするのではなく、いつも事前に構成された状態でテストができる。
4.自身の専用サービスを構築したい。ご自身のサービスを開発し、HWCをHttpListenerで何かを実装する強力な代替品として使ってマネージドコードやネイティブコードで作られたモジュールやハンドラーをASP.NETのインフラでカスタムホスティングすることに対して何もせずに実施できる。
5.開発用専用Webサーバーを持つことで、標準では実行できないようなクライアントとサーバー間のトレースやライブにデバッグ情報を確保するような仕組みも作ろうと思えば作れる。
...まだまだ多彩な方法で活かせます。
IT管理者にとってはとっても人間生活的に嫌ですが、こんなこともできるという例です。https://blogs.iis.net/sukesh/archive/2008/03/06/iis7-mobile-admin.aspx
というようにちょっと特殊だったり、深い実装をする場合にこのHWCが役に立つ人もいると思ったので書いてみました。
ちなみに Windows Server 2008 R2 Beta版 でもインストールする機能の一つとして HWC が IIS とは別に用意されているようですので、見た時に「これ 何?」と思わないように補足として書いたという背景の方が実は強かったりしますが。(●^o^●)
Comments
Anonymous
January 01, 2003
これ書いておいて思ったんですが、再配布はどうなるんでしょうね?その点でもちょっと追いかけてみようと思います。私の読みでは R2/W7 に個別に付くというのは再配布 NG のような気がしますね。Anonymous
January 01, 2003
やはり予想通りで、再配布はできませんので例えば CD-ROM にコンテンツを入れてもそもそも R2 と Win7 で OS の機能としてのHostable Web Core をインストールしておかないといけないですね。Anonymous
January 01, 2003
これもっと追いかけたい方はIIS & Webテクノロジー勉強会に参加してくれている小山さんのサイトで解説書いてあるので読んでみてください。(●^o^●) http://keicode.com/iis/index4.php