カスタムHTTPモジュールをapplicationHost.configに登録することができます。このモジュールは、ターゲットマシン上のすべてのIISアプリケーションで使用されます。
1)HTTPモジュールと署名したクラスライブラリプロジェクトを作成します。
public class ErrorHandlingModule : IHttpModule
{
public void Dispose() { }
public void Init(HttpApplication context)
{
context.Error += new EventHandler(context_Error);
}
void context_Error(object sender, EventArgs e)
{
// handle error
}
}
2)Install GACへのクラスライブラリ、それはすべてのIISアプリケーションで共有できるように。
3)Install httpモジュールからapplicationHost.configファイルへ。このファイルは通常、C:\ Windows \ System32 \ inetsrv \ configにあります。このフォルダ内のファイルは64ビットプロセス(32ビットOSではこのような問題はありません)によってのみアクセスできますが、VS2010では見ることはできませんがエクスプローラでは実行できます。 applicationHost.configのフラグメントは次のようになります。
<location path="" overrideMode="Allow">
<system.webServer>
<modules>
<add name="MyModule" preCondition="managedHandler" type="GlobalErrorHandler.ErrorHandlingModule, GlobalErrorHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=bfd166351ed997df" />
ありがとう、これは私が探していたものです!あなたが気にしていない場合、私はこのモジュールを持っていて、global.asaxでApplication_Errorを処理すると、最初に呼び出されるでしょうか? – McGarnagle
助けてくれてうれしいです。私の場合、httpモジュールが最初に呼び出されます。しかし、少なくとも、アプリケーションのイベントハンドラの実行順序を記述しているドキュメントは見つかりませんでした。あなたがこのトピックについて何かを見つけたら私に教えてください:)。 –