Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
二つのモードの話について触れておこうかと思います。
二つのモードとはISAPIモード(いわばIIS6互換モード)とIntegratedモード(私は統合モードって呼んでます)です。要するにIIS5互換モードは無くなるという点とIIS6とほぼ同じ構造で動作するモードがあると考えておけばいいでしょう。
IIS7はサーバーの各種提供機能がモジュール構造になっており、ASP.NETとのより親密な融合が図られているわけですが、本当の意味の”統合”はIntegratedモードにしないと発揮できません。実はIIS本体のパイプラインとASP.NET系のパイプラインが並立するのがIIS6と言えますが、似たような機能(認証とか、コンテンツの振分け処理とか)を双方で持っています。これらをIIS本体のパイプラインで全部処理するのがIntegratedモードな訳です。いわば二本の線上でそれぞれ行われていた処理が一本の処理フローに統合されるイメージです。
一方でISAPIモードは互換性を重視したモードですからほとんどの既存コードに最少の影響で済むように設計されていると言えるでしょう。ASP.NETコードもASPも動作します。ASPから呼び出している外部の処理はここではふれません、各々のバージョンアップによる影響はそれぞれだと思うので。前出で”ほぼ”と書いているのはISAPIベースで動作しているASP.NETのパイプラインのベースになっているISAPIの処理は新ISAPIモジュールが制御しているので、IIS6とまったく同じかと言うとそうではないからです。しかし、モジュール化する際にとったアプローチとして各機能をコード分割して別のDLLにした背景を考えると実際のコード自身にはあまり違わないと言えるでしょう。
この二つのモードはアプリケーションプール単位で制御できます。つまり、AppPool1は一方のモードで、AppPool2は別のモードでという設定ができる訳で、サーバー全体を変更してしまうのではありませんのでかなり柔軟性があると言えるのではないでしょうか。
米国のセミナーでよく質問があるらしいのですが、じゃあIntegratedモードを使わないでIIS7にするメリットは?という点があります。どうも現時点のビルドではそれほどのパフォーマンス差は無い、あるいはアプリの処理によっては遅いケースもあるようです。これは必死に開発チームがチューニング中らしいです。最終的に出荷のGOサインが出る評価ポイントの一つとしてこの点があり、中間のチェックポイントでIIS6同等のパフォーマンス、出荷時にはそれ以上を目指すということになっているとのことです。
Integratedモードの側面は上記の通りで、別の観点としてサーバーの機能をマネージドコードで自分が開発してプラグインできる、あるいは置き換えることができる点に今後ふれていく必要がありますね。私は実戦(実践ではなく)でISAPIをゴリゴリ書いていた人ではないのでどこまで核心に迫れるか微妙ですが、比較する上で必要な情報は書くように努めます。