1

css などのファイルを返すもの、サーバーによって生成された応答を返すもの、AJAX 機能のために aspx ページにリダイレクトされるものなど、さまざまなリソースの着信要求をルーティングしたいと考えています。

現在の構成では、HttpModule を使用して、すべての要求を 1 つのハンドラーに再マップします。このハンドラーでは、サーバーへのエントリ ポイントとして、URL が解析およびディスパッチされます。

HttpModule から HandlerFactory に再マップして、URL を解析し、その URL に基づいて適切なハンドラーにルーティングする必要がありますか、またはすべてを設定しようとする必要がありますか? web.config?

また、HttpHandler と HttpHandlerFactory から aspx ページにリクエストをルーティングするにはどうすればよいですか?

4

1 に答える 1

1

要求をさまざまなハンドラーにルーティングするためのルールが非常に単純な場合 (たとえば、".ext はハンドラー xyz に移動する")、web.config で組み込みの .NET メカニズムを使用する必要があります。ここで車輪を再発明する理由はありません。ロジックがより複雑である可能性がある場合、または拡張マッピング以上のものを扱う場合は、モジュールが適切です。

次に、ファクトリは IHttpHandlers を返すことができ、ASPX ページはIHttpHandler であるため、HttpHandlerFactory を使用する必要があります。したがって、カスタム ファクトリを使用する場合、ロジックが ASPX ページに "ルーティング" する必要があると判断した場合は、ファクトリからページのインスタンスを直接返すことができます。

IHttpHandler thePage = PageParser.GetCompiledPageInstance(
    requestPath,
    pathToAspxFile,
    httpContext);

return thePage;
于 2009-07-23T22:27:36.423 に答える