0

abc.aspx に対する要求が受信されると、aspnet_isapi.dll が処理を行い、ページの processrequest メソッドを呼び出すことは誰もが知っています。私の質問は、ページ クラスのインスタンスを作成する方法と、ページのライフ サイクルを呼び出す方法です。どのパターンを実装しますか?

ASP.NET ランタイムがハンドラーの ProcessRequest を呼び出してプロセスを開始することは、誰もが知っています。私の質問は、それをどのように行うかです。ページ名 (abc.aspx") に基づいて、abc のそのクラスを作成し、そのクラスのいくつかのメソッドを呼び出します。abc のオブジェクトをどのように作成するのかが私の質問です。

4

4 に答える 4

4

リクエストを受信して​​からレスポンスを送信するまでの段階を次に示します。

ここに画像の説明を入力

これがアプリケーションのライフサイクルです

ハンドラー (URL をスコープとするモジュール) が呼び出されて応答を作成する、ハンドラーの実行ステージ。.aspx ファイルの場合、PageHandlerFactory ハンドラーを使用して要求に応答します。静的ファイルの場合、ネイティブ コードの StaticFileModule モジュールが要求に応答します。

これはPageHandlerFactoryによって行われます

PageHandlerFactory は、Page クラスから継承し、IHttpHandler インターフェイスを実装するクラスのインスタンスを作成します。インスタンスは、ASP.NET ファイルの要求を処理するために動的に作成されます。PageHandlerFactory クラスは、ASP.NET ページの既定のハンドラー ファクトリ実装です。

PageHandlerFactory クラスは、IHttpHandlerFactory インターフェイスを実装して、ASP.NET ファイルの既定の HTTP ハンドラーを提供します。PageHandlerFactory は、必要に応じて ASP.NET コンパイル システムを呼び出してコンパイルし、URL に対応する正確な型を返し、その型のインスタンスを作成します。ページ タイプは Page クラスを継承し、IHttpHandler インターフェイスを実装します。

于 2012-09-12T08:27:15.623 に答える
1

これはあなたが探しているものだと思います..

http://www.west-wind.com/presentations/howaspnetworks/howaspnetworks.asp

于 2012-09-12T09:04:19.187 に答える
0

に基づいてこのコードを試すことができますHttpContext.Response.Redirect

public void ProcessRequest(HttpContext context)
{
        context.Response.Write("<H1>This is an HttpHandler Test.</H1>");      
        context.Response.Redirect("YourPage.aspx");
}
于 2012-09-12T08:19:17.043 に答える
0

この種のことは十分に文書化されています:

http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx

于 2012-09-12T08:12:25.160 に答える