3

VSTS 2008 + C# + .Net 3.5 を使用して ASP.Net を開発しています。特定の aspx ファイルについて、クライアントに返されたすべての応答ヘッダーをダンプしたいと考えています。これを簡単に行う方法はありますか?

Response.Headers コレクションの使用方法は知っていますが、正確な応答ヘッダーを取得するために列挙する場所が混乱しています。たとえば、Page_Load で列挙すると、すべての応答ヘッダーを列挙できるわけではありませんが、Response.Close の後で列挙すると、例外がスローされます。

何かアドバイス?

EDIT1: VSTS 2008 デバッグ モードで OnPreRender を使用すると、次の例外が発生します (つまり、F5 キーを押してデバッグします)。

{"この操作には IIS 統合パイプライン モードが必要です。"}

protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);
            using (StreamWriter writer = new StreamWriter("dump123.txt", true))
            {
                writer.WriteLine(DateTime.UtcNow + " Response headers");
                foreach (string item in HttpContext.Current.Response.Headers.Keys)
                {
                    writer.WriteLine(item + " : " + HttpContext.Current.Response.Headers[item]);
                }
            }

        }

前もって感謝します、ジョージ

4

2 に答える 2

3

OnPreRender はどうですか?? これは、ページがレンダリングされる直前で、すべてのポストバック処理が行われた後です。その時までにすべてが整っているはずです。

マルク

于 2009-07-26T08:08:35.613 に答える
0

[これは元の質問には古いかもしれませんが、ここに着陸する可能性のある初心者のためにこの回答を追加します]

次のように、デバッグにローカル IIS を使用するように Web プロジェクトのプロパティを変更します。

  1. プロジェクトのプロパティを参照します (ソリューション エクスプローラーでプロジェクト ノードを右クリック -> プロパティ、またはプロジェクト ノードを選択して Alt + Enter キーを押します)。
  2. 「ビルド」タブを選択
  3. サーバー セクションで、[ローカル IIS サーバーを使用する] ラジオ ボタンを選択します。ローカル IIS に仮想ディレクトリをセットアップし、ここの設定でその URL をポイントします。

セットアップに関する詳細なチュートリアルは、ここで見つけることができます

F5 キーを押すと、ローカルの IIS がデバッグに使用され、プラットフォームがサポートされていないという例外が発生したり、統合パイプライン モードが必要であると不平を言ったりすることはありません。

于 2013-01-10T05:03:58.013 に答える