forums.asp.netでこれを尋ねましたが、引き受ける人がいなかったので、ここで試してみようと思いました.
BeginRequest、ReleaseRequestState、および EndRequest を登録する HttpModule があります。モジュールの主な目的は、通常の html ページを提供しているときに、生成された html の href のクエリ文字列を書き換えて暗号化するためのフックが必要であることです。フィルタリングは、モジュールの ReleaseRequestState イベント ハンドラーに追加されます (context.Response.Filter = new MyFilter(...);)。
しかし、xml ドキュメントを生成するページを実行している場合、ReleaseRequestState イベント ハンドラーはまったく起動していないように見えます。BeginRequest と EndRequest だけです。
多くのグーグル検索の後、HttpApplication.CompleteRequest() が多くのイベント チェーンをバイパスして直接 EndRequest に移動するという投稿を見つけましたが、CompleteRequest() を呼び出す場所はどこにもありません。だから私は、それを呼び出す他のもの、またはReleaseRequestStateをバイパスする他の方法があると考えています。
レポート xml を作成するように設定するときは、Response.Clear(); を実行します。次に、Response.OutputStream で XmlWriter を作成します。これらのいずれかにより、下位の何かが ReleaseRequestState イベントをバイパスしますか?