511

昨夜、ASP.NET MVC アプリケーションを展開していましたが、IIS7 を統合モードに設定して展開する方が簡単であることがわかりました。私の質問は、違いは何ですか? そして、どちらか一方を使用することの意味は何ですか?

4

4 に答える 4

658

クラシック モード (IIS6 以前の唯一のモード) は、IIS が ISAPI 拡張機能と ISAPI フィルターのみを直接操作するモードです。実際、このモードでは、ASP.NET は単なる ISAPI 拡張機能 (aspnet_isapi.dll) と ISAPI フィルター (aspnet_filter.dll) です。IIS は、ASP.NET を ISAPI に実装された外部プラグインとして扱い、ブラック ボックスのように動作します (ASP.NET に要求を送信する必要がある場合のみ)。このモードでは、ASP.NET は PHP や IIS の他のテクノロジと大差ありません。

一方、統合モードは、IIS パイプラインが ASP.NET 要求パイプラインと緊密に統合されている (つまり、まったく同じ) IIS7 の新しいモードです。ASP.NET は、必要なすべての要求を確認し、途中で操作することができます。ASP.NET は外部プラグインとして扱われなくなりました。IIS に完全にブレンドされ、統合されています。このモードでは、ASP.NETHttpModuleは基本的に ISAPI フィルターとほぼ同じ能力を持ち、ASP.NETHttpHandlerは ISAPI 拡張機能とほぼ同等の能力を持つことができます。このモードでは、ASP.NET は基本的に IIS の一部です。

于 2009-04-03T23:22:14.153 に答える
122

統合アプリケーション プール モード

アプリケーション プールが統合モードの場合、IIS と ASP.NET の統合された要求処理アーキテクチャを利用できます。アプリケーション プール内のワーカー プロセスが要求を受け取ると、要求はイベントの順序付きリストを通過します。各イベントは、必要なネイティブ モジュールとマネージ モジュールを呼び出して、要求の一部を処理し、応答を生成します。

アプリケーション プールを統合モードで実行することには、いくつかの利点があります。まず、IIS と ASP.NET の要求処理モデルが統合されたプロセス モデルに統合されます。このモデルにより、認証など、以前は IIS と ASP.NET で重複していた手順が不要になります。さらに、統合モードでは、管理された機能をすべてのコンテンツ タイプで利用できます。

クラシック アプリケーション プール モード

アプリケーション プールがクラシック モードの場合、IIS 7.0 は IIS 6.0 ワーカー プロセス分離モードと同様に要求を処理します。ASP.NET 要求は、最初に IIS のネイティブ処理手順を通過した後、マネージ ランタイムでマネージ コードを処理するために Aspnet_isapi.dll にルーティングされます。最後に、要求は IIS 経由でルーティングされ、応答が送信されます。

このように IIS と ASP.NET の要求処理モデルを分離すると、認証や承認などの一部の処理手順が重複します。さらに、フォーム認証などのマネージ コード機能は、ASP.NET アプリケーション、または aspnet_isapi.dll によって処理されるすべての要求をスクリプト マップしたアプリケーションでのみ使用できます。

運用環境を IIS 7.0 にアップグレードし、統合モードでアプリケーション プールにアプリケーションを割り当てる前に、統合モードで既存のアプリケーションの互換性を必ずテストしてください。アプリケーションが統合モードで動作しない場合にのみ、クラシック モードのアプリケーション プールにアプリケーションを追加してください。たとえば、IIS からマネージ ランタイムに渡される認証トークンにアプリケーションが依存している場合、IIS 7.0 の新しいアーキテクチャが原因で、そのプロセスによってアプリケーションが機能しなくなることがあります。

出典: IIS7 の DefaultAppPool と Classic .NET AppPool の違いは何ですか?

元のソース: IIS アーキテクチャの紹介

于 2012-12-28T09:42:43.847 に答える
5

クラシック モードでは、IIS は ISAPI 拡張機能と ISAPI フィルターを直接操作します。また、2 つのパイプラインを使用します。1 つはネイティブ コード用で、もう 1 つはマネージド コード用です。クラシック モードでは、IIS 7.x は IIS 6 と同じように機能し、IIS 7.x の機能から特別な利点を得ることはできないと簡単に言えます。

統合モードでは、クラシック モードの場合のように、Asp.net 上の 2 つの DLL だけに依存するのではなく、IIS と ASP.Net が緊密に結合されます。

于 2013-04-17T16:11:31.190 に答える