2009-02-21 9 views
6

「www」URL(http://example.com/)を「www」URL(http://www.example.com/)に変更せずにリダイレクトするモジュールを使用しているWebアプリケーションを作成しました。しかし、私はHttpModuleを実装する権限を持っていない共有ホスティングサーバー上にいるので、Global.asaxファイルで同じモジュールコードを試しました。それは動作します!HttpModuleとGlobal.aspxのパフォーマンスの違いは何ですか?

次の(Application_BeginRequest())イベントを使用してHttpModuleの機能を実装しました。

void Application_BeginRequest() 
{ 
    //module code 
} 

モジュールとアプリケーションは、Global.asaxファイルから良くし、正しく動作しているしかし、私はパフォーマンスが心配です。

私たちがasp.netでHTTPModuleを使用する理由Global.asaxファイルを使用して同じものを実装できるのであれば。両方のパフォーマンスに違いがありますか?または、HttpModuleの代わりにGlobal.asaxファイルを使用する際に心配する必要がある相違点は何ですか?

説明してください!

答えて

4

Global.asaxはHTTPApplicationを継承し、HTTPModulesはIHTTPInterfaceを実装する必要があります。
HTTPModules Initメソッドは、渡されたHTTPApplicationオブジェクトを取得します。
Initメソッドでは、HTTPApplicationのイベントにフックできます。

可能な限り、HTTPModuleを使用することをお勧めします。
特に、顧客が自分のglobal.asaxを自分のものに置き換えることができるシュリンクラップソフトウェアを作成する場合。

+0

私はGlobal.asaxを介してHTTPModulesを好むが、私はHttpModuleを実装しようとしているときに私の共有ホスティングサーバー上で私に "500の奇妙なサーバーエラー"を与える。だからこそ、私はGlobal.asaxに行くつもりです – Prashant

+0

もう1つ、私は特にあなたが顧客があなたのglobal.asaxを自分のものに置き換えることができる縮んだラップソフトウェアを作るなら、私は得られません。あなたの答えのこの行ですか? 「シュリンクラップされたソフトウェア」とは何ですか?また、顧客がglobal.asaxファイルをどのように置き換えることができますか? – Prashant

+0

実行時に、Global.asaxは解析され、HttpApplication基本クラスから派生した動的に生成された.NET Frameworkクラスにコンパイルされます。ソフトウェアパッケージ(シュリンクラップ)を販売する場合、顧客はglobal.asaxを変更することができます –

2

ほとんど違いはありません。 HTTPModuleのポイントは、明快さと分離のためです。多くの場合、人々はglobal.asaxで取得できない何らかのHTTPModuleを通して要求をパイプします。

+1

これは、どちらの方法もパフォーマンスに関して違いがないことを意味します。私にとって重要なCaz: – Prashant

関連する問題