2011-01-07 14 views
0

私はasp.netがすべてのWebアプリケーションのためのすべての要件を満たしていますが、asp.netでカスタムhttphandlerとhttpmoduleを作成するための基本ルールは何かを知っています。asp.netのHttphandlerとHttpmodule

編集:たとえば、データベースから画像を取得したいのですが、私はhttphandlerを使用する必要がありますか、通常はデータベースから画像を読み取ります。httphandlerなら、なぜですか?

+0

"グループルール" を扱うためのプロセスですか?あなたが何を求めているのか分かりません。 – NotMe

+0

あなたの質問にもっと詳しく説明してください... –

+0

@Chris&Brian:データベースから画像を取得したいと思っています。建築家がhttphandlerを使用するように提案しました。この質問にはいつ決定するのが基本ルールなのですか? asp.netのカスタムハンドラまたはモジュールを使用する –

答えて

4

HTTPHandlersがリクエストを処理します。しかし、HTTPModuleはリクエストのライフサイクルイベントにアクセスする必要があります。 HTTPHandlerは1つしか使用できませんが、複数のHTTPModuleを接続して、要求を調べて処理できます。

1

これで、データベースからイメージを取得することができました。

はい、これを実行するには、汎用ハンドラ(.ashx)を使用するのが最適です。

これは、追加|新しい項目を選択し、リストから汎用ハンドラを選択します。

ジェネリックハンドラには、ページライフサイクルがないため、処理がより迅速かつ簡単になります。 ProcessRequestメソッドにいくつかのコードを提供するだけで、データベースからイメージを取り出し、それをブラウザに返すだけです。

1

親指のルールHttpHandlersは、ブラウザ、ページ、画像、または特定の具体的なリソースに何かを提供する必要がある場合です。 HttpModulesは、サーバー上で起こっているパイプラインのイベントに応答するためのものです。エラーの処理、URLの書き換え、ログの記録、ログインクッキーのチェック、入力ストリームまたは出力ストリームのフィルタリングなど。

1

まず、ASP.NETページはHTTPハンドラであり、機能豊富なものだけであることに注意してください。 (System.Web.UI.PageクラスはIHttpHandler実装します。)

クリス・ライヴリー述べたように、一般的なHTTPハンドラ - それはあなたがそれを作成するクラスがあるがIHttpHandler実装 - それので、標準のASP.NETページを使用して、より簡単でより効率的になるだろうページライフサイクル全体を処理するわけではなく、ProcessRequestメソッドで出力を作成するだけに集中できます。

ただし、自分のHTTPハンドラを作成するのではなく、データベースの画像を表示することが特に必要な場合は、MicrosoftのGeneratedImage controlを使用することを検討してください。

簡単に言えば、GeneratedImageコントロールは、データベースイメージを表示するように設計されたMicrosoftによって作成されたHTTPハンドラ基本クラスです。使いやすく、キャッシングやその他の機能をサポートしています。なぜ車を再発明するのですか?

詳細については、Dynamically Generating and Caching Images in ASP.NET with the GeneratedImage Controlを参照してください。

GeneratedImageコントロールは、ASP.NET Webコントロールと、プログラムによる画像の作成、配信、キャッシング、および変換を容易にする一連のクラスの組み合わせです。ウェブページから配信する必要のある画像をデータベースに保存したり、その場で画像を作成する必要がある場合、またはサイズを変更したり、ウォーターマークを追加したり、その他の画像変換を行う必要がある場合は、GeneratedImageコントロールが役立ちます。

ハッピープログラミング!

0
  • HTTPモジュール:要求の前後に毎回呼び出されます。
  • HTTPハンドラ:はどのような点で要求(特別.aspxページ)
関連する問題