3

MvcHandlerから派生したカスタムハンドラーを作成しました。GetHttpHandler()の新しいハンドラーを返すカスタムRouteHandlerを使用するルートがあり、カスタムハンドラーでProcessRequest()をオーバーライドします。GetHttpHandlerの呼び出しはブレークポイントをトリガーし、ハンドラーのコンストラクターは確実に呼び出されますが、BeginProcessRequest()はProcessRequest()ではなくベースMvcHandlerで呼び出されます。

何もしていないのに非同期メソッドが呼び出されるのはなぜですか?私は非同期処理を望んでいません、そして私は確かにそれを得るために明示的なことは何もしませんでした。私のコントローラーはすべて、AsyncControllerではなくControllerから派生しています。

現在、ソースコードを持っていませんが、必要に応じて後で追加できます。私は、BeginProcessRequestが不要なときに呼び出される理由のいくつかを誰かが知っていることを望んでいました。

4

1 に答える 1

2

Brad Wilsonは、Asp.netフォーラムへの私の投稿に、次の回答で応答しましたhttp://forums.asp.net/t/1547898.aspx

簡単な答え:はい。

AsyncControllerの追加により、MvcHandlerクラスはIHttpAsyncHandlerである必要があります。つまり、ASP.NETコアランタイムに関する限り、エントリポイントはProcessRequestではなくBeginProcessRequestとEndProcessRequestになります。

ProcessRequestはもう呼び出されていないようですが、私は間違っている可能性があります。私のテストでは見たことがないと言えます。

于 2010-04-20T04:34:10.220 に答える