2009-03-31 4 views
2

本は、(IIS7を使用している場合)Webサイト上で実行されているWebアプリケーション(nonasp.netアプリケーションでさえ)によって使用されるように、次のモジュールが構成されている例を示しました。しかし、このモジュールはnon-asp.netのアプリケーションに対して呼び出されるHttpHandlerインスタンスとHttpApplicationオブジェクト - 後者は...?

  1. 場合、どのようにか、なぜだろうのHttpApplicationオブジェクトnon-asp.netアプリがCLRのコンテキストで実行していないので、まだ、作成されます( Asp.Netランタイムも実行されません)?

  2. HttpApplicationオブジェクトはまたnon-asp.netアプリのために作成されたと仮定すると、なぜ、コードのInit()内のイベントハンドラを行うには、HttpApplicationオブジェクトが実際に存在するかどうかをチェックする必要がありますか?なぜそれが存在しないのですか?この0x実際にHTTPモジュールインスタンスをインスタンス化するオブジェクトではありませんか?ここで

は、HTTPハンドラです:IIS7で

public class SimpleSqlLogging : IHttpModule 
{ 
    private HttpApplication _CurrentApplication; 

    public void Dispose() 
    { 
     _CurrentApplication = null; 
    } 

    public void Init(HttpApplication context) 
    { 
     // Attach to the incoming request event 
     _CurrentApplication = context; 

     if (context != null) 
     { 
      context.BeginRequest += new EventHandler(context_BeginRequest); 
     } 
    } 

    void context_BeginRequest(object sender, EventArgs e) 
    { ... } 
} 



答えて

2

統合パイプラインで実行しているアプリケーションプール内のアプリケーションは常に.NETアプリケーションです。コードは防御的なものにすぎません。

関連する問題