68

ASP.NET の HttpHandler とは何ですか? なぜ、どのように使われるのですか?

4

6 に答える 6

82

簡単に言うと、ASP.NET HttpHandler はSystem.Web.IHttpHandlerインターフェイスを実装するクラスです。

ASP.NET HTTPHandlers は、ASP.NET Web アプリケーション サーバーに対して行われた要求をインターセプトする役割を果たします。これらは、ASP.NET サイトに対する要求に応じてプロセスとして実行されます。最も一般的なハンドラーは、.aspx ファイルを処理する ASP.NET ページ ハンドラーです。ユーザーが .aspx ファイルを要求すると、要求はページ ハンドラーを通じてページによって処理されます。

ASP.NET には、いくつかの既定の HTTP ハンドラーが用意されています。

  • ページ ハンドラー (.aspx): Web ページを処理します。
  • ユーザー コントロール ハンドラー (.ascx): Web ユーザー コントロール ページを処理します。
  • Web サービス ハンドラー (.asmx): Web サービス ページを処理します。
  • トレース ハンドラー (trace.axd): トレース機能を処理します。

カスタム出力をブラウザーにレンダリングする独自のカスタム HTTP ハンドラーを作成できます。ASP.NET での HTTP ハンドラーの一般的なシナリオは、たとえば次のとおりです。

  • 動的に作成された画像 (チャートなど) またはサイズ変更された画像の配信。
  • RSS 形式の XML を発行する RSS フィード

同期ハンドラーを作成するためのインターフェースと、非同期ハンドラーを作成するためのインターフェースを実装します。インターフェイスでは、メソッドとプロパティを実装する必要があります。IHttpHandlerIHttpAsyncHandlerProcessRequestIsReusable

このProcessRequestメソッドは、行われたリクエストの実際の処理を処理しますが、BooleanIsReusableプロパティは、(パフォーマンスを向上させるために) 再利用のためにハンドラーをプールできるかどうか、または各リクエストに新しいハンドラーが必要かどうかを指定します。

于 2008-12-24T10:35:09.833 に答える
16

(HttpHandlerまたはIHttpHandler) は基本的に、コンテンツの提供を担当するものです。ASP.NET ページ (aspx) は、ハンドラーの一種です。

たとえば、Web サーバー自体からではなくデータベースから画像などを提供したり、(SOAP/WCF/etc ではなく) 単純な POX サービスを作成したりするために、独自のサービスを作成することができます。

于 2008-12-24T09:56:52.173 に答える
2

HttpHandler の例、

ASP.NET 2.0 の HTTP ハンドラー

ハンドラーは、ブラウザーからの要求を満たす責任があります。ブラウザーが管理する要求は、ファイル拡張子によって処理されるか、ハンドラーを直接呼び出すことによって処理されます。着信 Http 要求を処理する低レベルの要求および応答 API は、Asp.Net の Http ハンドラーです。すべてのハンドラーは、System.Web 名前空間にある IHttpHandler インターフェイスを実装します。ハンドラーは、インターネット サーバー アプリケーション プログラミング インターフェイス (ISAPI) 拡張機能にいくらか似ています。

IHttpHandler インターフェイスを実装して同期ハンドラーを作成し、IHttpAsyncHandler インターフェイスを実装して非同期ハンドラーを作成します。インターフェイスでは、ProcessRequest メソッドと IsReusable プロパティを実装する必要があります。ProcessRequest メソッドは、行われた要求の実際の処理を処理します。一方、Boolean の IsReusable プロパティは、ハンドラーを再利用してパフォーマンスを向上させるためにプールできるかどうか、または要求ごとに新しいハンドラーが必要かどうかを指定します。

.ashx ファイル拡張子は、カスタム ハンドラー用に予約されています。ファイル名拡張子が .ashx のカスタム ハンドラーを作成すると、IIS および ASP.NET 内に自動的に登録されます。別のファイル拡張子を使用する場合は、IIS および ASP.NET 内で拡張子を登録する必要があります。.ashx 以外の拡張子を使用する利点は、複数のファイル拡張子を 1 つのハンドラーに割り当てることができることです。

HTTP ハンドラーの構成

構成セクション ハンドラーは、着信 URL を IHttpHandler または IHttpHandlerFactory クラスにマッピングする役割を果たします。これは、コンピューター、サイト、またはアプリケーション レベルで宣言できます。サブディレクトリはこれらの設定を継承します。管理者は tag ディレクティブを使用してセクションを構成します。ディレクティブは、上から順に解釈および処理されます。セクション ハンドラには次の構文を使用します。

HTTP ハンドラの作成

HTTP ハンドラーを作成するには、IHttpHandler インターフェイスを実装する必要があります。IHttpHandler インターフェイスには、次のシグネチャを持つ 1 つのメソッドと 1 つのプロパティがあります。bool IsReusable {get;}

于 2012-12-10T05:12:51.827 に答える