- - PR -
フロントコントローラについて
1
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-07-13 11:53
はじめまして。
ASP.NET(C#)歴2年のひろぱぱと申します。 よろしくお願いします。 現在、Microsoftのpatterns&practicesにあるフロント コントローラについて 調査を行っています。 IHTTPHandlerインターフェースを実装し、ここで着信HTTP要求を処理してから 各ページに制御を移すといったものです。 サンプルを作成したのですが、エラーが発生してしまい、調査が滞っている状態です。 実行(開発)環境: Windows2000 Pro IIS 5.0 .NET Framework 1.0 ■テストサイト(サイト名:TEST) WebForm1.aspx WebForm2.aspx ※各ページには処理の実装はありません。 ※Web.Configには、以下の設定を行いました。
■フロント コントローラ
エラー内容: ブラウザより、TEST/WebForm1.aspx を入力するとWebForm2.aspxが表示されると 思っていたのですが以下のエラーが context.Server.Transfer にて発生してしまっています。 [HttpException (0x80004005): /TEST/WebForm2.aspx の子の要求を実行中にエラーが発生しました。] System.Web.HttpServerUtility.ExecuteInternal(String path, TextWriter writer, Boolean preserveForm) +1692 System.Web.HttpServerUtility.Transfer(String path, Boolean preserveForm) +24 System.Web.HttpServerUtility.Transfer(String path) +77 Handler.ProcessRequest(HttpContext context) in c:/visual studio projects/frontcontroller/handler.cs:14 System.Web.CallHandlerExecutionStep.Execute() +179 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +87 やってみた事: 的を外しているかも知れませんが...
長くなってしまい申し訳ありません。 対処方法などご存知の方がいらっしゃいましたらご教授お願いします。 以上 よろしくお願いします。 | ||||||||
|
投稿日時: 2004-07-13 13:40
あんまり詳しくないんですが、単純に考えて永久に転送を続けてしまいませんか? | ||||||||
|
投稿日時: 2004-07-13 14:24
なちゃさん、レスありがとうございます。
私の認識が間違っていましたら、ご指摘お願いします。 context.Server.Transferですが、動作としては以下の様に考えています。 1:ブラウザより/TEST/WebForm1.aspxを入力 2:context.Server.Transferにて/TEST/WebForm2.aspxに移動 3:1:の応答として、/TEST/WebForm2.aspxがかえる ※このときのブラウザのアドレスバーには、/TEST/WebForm1.aspxが表示されている。 ...と考えていたので、永久に転送されることはないと思っていました。 ちなみに、Redirectでも実行しましたが、これについては なちゃさんのご指摘通り、永久に転送を続けてしまいました... さらに、Transferをコメントアウトして実行した場合は、ブラウザで指定した ページは表示されず、HTML、HEAD、BODYタグのみが送信されていました。 該当ページまで処理が届いていませんでした。 そこでTransferを実装しました。 そもそも、このやり方に問題があるのでしょうか? | ||||||||
1
