0

ASP.NET では、global.asax ファイルの Session_End イベントで Cookie 値を取得するにはどうすればよいですか? 次のコードは、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」という例外をスローしています。

    string cookyval = "";
    try
    {
        cookyval = Context.Request.Cookies["parentPageName"].Value;
    }
    catch (Exception ex)
    {
        cookyval = "";
    }

何かアドバイス ?

4

3 に答える 3

3

Session_End イベントは、HTTP 要求ではなく、IIS ワーカー プロセスによって発生します。したがって、HttpContext は null になり、クライアントの Cookie を設定できなくなります。

于 2009-09-17T11:48:22.133 に答える
0

Session_End はユーザー リクエストのコンテキストでは実行されないため、Cookie (またはその他のリクエスト変数) にはアクセスできません。

値をSessionに入れると、それにアクセスできると思います:

string cookyval = "";
try
{
    cookyval = (string)Session["parentPageName"];
}
catch (Exception ex)
{
    cookyval = "";
} 

それ以外の場合は、他のサーバー側のストレージ (データベースなど) に書き込む必要があります。

于 2009-09-17T11:49:02.173 に答える
0

これが可能かどうかはわかりません。

Session_End が発生した時点で、リクエストは無効になります。

ごめん、

ダン

于 2009-09-17T11:41:09.697 に答える