1

Webサイトとは別のアセンブリにIHttpModuleを実装するクラスがあります。モジュールの実装は、リクエストをインターセプトし、WebサイトのURLを書き換えます。

マッピングは、要求されたURLと宛先URLとともにクラスに保存されます。

http://devhood.com/Tutorials/tutorial_details.aspx?tutorial_id=486の2番目の例MTSingletonは、マッピングリストの作成に適していますか?モジュール実装内からのより良いアプローチはありますか?

編集:私の悪い、これはIIS6.0と.NET3.5SP1用です

4

1 に答える 1

3

アプリサイクルで1回マッピングオブジェクトを作成しようとしているようです。リクエストごとにこれが何度も作成されないようにしようとしているようです。(私が間違っているかどうかを明確にしてください。)

IHttpModuleのメソッドを見てください。IIS 7.0を使用していると仮定すると、ASP.Netライフサイクルは、Init()メソッドが1回起動されることを示します。つまり、アプリケーションのライフサイクルごとに1回起動されます。したがって、Webサーバーを起動すると、最初のリクエストでInit()が起動し、その後のリクエストでは、Webサーバーのアプリケーションサイクルが更新されるまで起動する必要はありません。

マッピング作成コードをInit()メソッドに安全に移動できるはずです。これにより、マルチスレッドのシングルトンタイプの初期化で求めている保護手段が提供されます。マッピングオブジェクトの周囲にはマルチスレッドのセーフガードが必要ですが、IHttpModuleのInit()メソッドを使用すると、目的の1回限りの効果が得られます。

于 2009-11-19T22:50:35.433 に答える