2009-08-16 10 views
1

私は例外をキャッチし、未処理のログインにこれ​​を使用してセットアップWebFormURLRoutingに、私のWebアプリケーションでのHttpApplication(Global.asaxの)を持っています。しかし、私はこのコードを自分のアプリケーションフレームワーク(つまりGlobal.asax.csではなく)に移したいと思っています。C#ASP.NETのHttpModules:のHttpApplicationイベント

私はフレームワークでHttpApplicationクラスを作成しようとしましたが、 ?完全にGlobal.asaxのための必要性を排除)

1:とにかく、私はこれを行い、これらのイベントを消費し、私が使用する代わりにHttpModuleをを使用することができます信じますか?

2)どのようにこの効果がアップスケーリングん、最終的にはWebファームに

3アプリケーションを実行しているすなわち)私は、ファイルのアップロードやファイルのダウンロードなどの他のものを処理するためのhttpHandlersを持っているどのように多くのHttpModuleをするには限界があります/ HttpHandlersを使用するか、これらをオーバーヘッドを減らすために何とか組み合わせるべきですか?

すべてのコメントは、あなたがのGlobal.asaxから知っているイベントを聴く

答えて

3

を高く評価し、HTTPモジュールでは、モジュールのinitメソッド内のHttpApplicationインスタンスのイベントをフックするのと同じくらい簡単です。 HttpApplicationのメソッドをオーバーライドすることはできません。イベントのリッスンを行う必要があります。あなたの他の質問については

: 1)はい、私のWebプロジェクトの多くに、私たちは、これは本当にアップスケーリングには影響を与えませんGlobal.asaxの

2)を使用しないでください。ファーム内の各Webサーバーについて、HTTPModuleを正しく接続する必要があります。しかし、これはweb.configで行われるので、既にそこにあるはずです。

3)短い答え:のhttpHandlersについて特許は、それらが選択され、受信したHTTPリクエストファイル拡張子および/またはパスとHTTP方式に基づいて実行されます。特定のハンドラの選択はパフォーマンスの問題になる前に、あなたは本当にたくさんこれらのが必要になります。 HttpModulesの場合、リクエストごとにいくつかのコードを実行するオプションがあります。実行に時間がかかると、パフォーマンスに影響します。しかし、時間がかかるコードであり、httpモジュール経由で実行されるわけではありません。

1

フレームワークでApplicationクラスを作成し、各アプリケーションでを継承するを作成できます。したがって、フレームワーク内にすべてのハンドルがあります。
答え:

  1. あなたは、Applicationクラスを使用しないように、それは良いアイデアではないのハンドラをaddignすることができます。
  2. ハンドラの数は、一般的にscallabilityには影響を与えません。 IT は、保守性に問題ありませんです。
  3. ので、#2の小さなハンドラの数にしてください。
関連する問題