13

統合パイプラインに関するいくつかのドキュメントを読んだ後、IIS がマネージド モジュールを実行するタイミング、実際のマネージド リクエストとは何か、およびそれがどのように決定されるかを決定する方法について混乱しています。

http://www.iis.net/learn/application-frameworks/building-and-running-aspnet-applications/aspnet-integration-with-iis http://blogs.msdn.com/b/tmarq/archive/2007 /08/30/iis-7-0-asp-net-pipelines-modules-handlers-and-preconditions.aspx

「管理された」リクエストが何度か言及されています。マネージド リクエストは、マネージド ハンドラーへのマッピングを持つリクエストであると説明されているインスタンスが 1 つあります。ハンドラーは「特別な」モジュールであるという引用もあります(2番目のリンク)。

モジュールは、すべての要求に対して実行されるものとして説明され、ハンドラーには、いつ実行する必要があるかを指定するマッピング (*.aspx の HTTP GET など) があります (2 番目と 1 番目のリンク)。さらに、モジュールの場合、execute_request_handler [ハンドラーが実際に実行されるポイントと想定しています] は、パイプラインのいくつかの段階の後 (begin_request、認証、承認などの後) に来ます。これは、次のステップがあることを意味します。これにより、要求がマネージ ハンドラーに対するものではない場合に preCondition="managedHanlder" を持つモジュールの実行が無効になります。

私はここに欠けているものがあると感じています。

4

1 に答える 1

8

このブログ投稿 ( http://blogs.iis.net/thomad/archive/2006/11/04/precondition-what.aspx ) から:

ManagedHandler 前提条件

IIS 7.0 では、新しいマネージ拡張モデルが導入されています。ハンドラーとモジュールをマネージ コードで記述し、IIS 要求パイプラインに直接統合できるようになりました。ただし、マネージ コードとネイティブ コードの切り替えは、コストのかかる操作です。managedHandler 前提条件は、静的ファイル (.html、.jpg など) が提供される場合など、マネージ コードが関与する必要がない要求のパフォーマンスを最適化できるようにするために導入されました。要求がネイティブ ハンドラーによって処理され、すべてのマネージ モジュールが managedHandler 前提条件で構成されている場合、マネージ コードは呼び出されません。実際のシナリオはフォーム認証です。マネージド フォーム認証モジュールには managedHandler 前提条件があるため、ASP.NET コンテンツ (*.aspx など) ページが要求された場合にのみ呼び出されます。もし 。html ページが要求され、フォーム認証が呼び出されません。フォーム認証ですべてのコンテンツを保護したい場合は、フォーム認証モジュール エントリから managedHandler 前提条件を削除するだけです。

つまり、要求がネイティブ IIS モジュール (イメージなど) によって処理される場合、すべてのマネージ パイプライン (たとえば、すべての "global.asax" イベントなど) を通過する必要はありません。となり、パフォーマンスが大幅に向上します。

編集:あなたの質問に対する実際の答えは: ハンドラのマッピングです。これは、ファイル拡張子を特定のハンドラーに関連付けるものです。II7 でこれらのマッピングを編集する方法を以下に示します。また、ハンドラー マッピングの詳細については、こちらを参照してください。

IIS でこのセクションを開く

次に、登録されたすべてのマッピングが表示されます

于 2013-09-30T14:17:52.557 に答える