-1

同じドメインに aspx ページとカスタム httphandler があります。aspxページ(test.aspx)で、私は使用します

<%@ Page Language="C#" %>
<%

    HttpContext.Current.Session["UserID"] = "ABC";

%>

セッション変数を作成しますが、httphandlerで変数を呼び出したい場合

public class JpgHttpHandler : IHttpHandler, IRequiresSessionState
{
    public void ProcessRequest(HttpContext context)
    {
         response.Write(HttpContext.Current.Session["UserID"].ToString());
    }
}

httphandler を切り替えると、エラー メッセージが表示されます。

Object reference not set to an instance of an object.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

httphandler からセッションを呼び出すにはどうすればよいですか?

ありがとう

アップデート

コードをに変更しました

if (context.Session["UserID"] != null)
response.Write(context.Session["UserID"].ToString());

奇妙なことに、ip を使用して Web ページにアクセスすると、機能します。しかし、ドメイン名を使用してページにアクセスすると、空白が表示されます

4

2 に答える 2

1

常にセッションがnullかどうかを確認してください。

//Check session variable null or not
if (HttpContext.Current.Session["UserID"] != null)
{
    //Retrieving User ID from Session
}
else
{
 //Do Something else
}
于 2013-01-09T15:30:47.940 に答える