当前位置:编程学习 > C#/ASP.NET >>

关于cookers的疑问

未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误: 


行 48:                 Username = Request.Cookies["UserCookie"]["username"].ToString();
行 49: 
行 50:                 Role = Request.Cookies["UserCookie"]["role"].ToString().Split(',');
行 51: 
行 52:             }
 

代码:
        protected void Page_Load(object sender, System.EventArgs e)
        {
            // 在此处放置用户代码以初始化页面
            string Username;
            //string Role;
            if (Request.Cookies["UserCookie"] == null)
            {
                Response.Write("<SCRIPT language='JavaScript'>alert('非法操作!请重新登陆');window.parent.location.href='login.aspx';</SCRIPT>");
            }
            else
            {

                Username = Request.Cookies["UserCookie"]["username"].ToString();

                Role = Request.Cookies["UserCookie"]["role"].ToString().Split(',');

            }
            if (!IsPostBack)
            {
                //this.ClassKind = Convert.ToInt32(Request.QueryString["ClassKind"]);
                this.ClassKind = 1;
                BindData();
                if (Request.Cookies["UserCookie"]["biaozhi"].ToString()=="9")
                {
                    yes.Visible = true;  //后台管理显示
                }
                else 
                {
                    yes.Visible = false;  //后台管理隐藏
                }
               
             }
        }


在本机上没有问题,放在服务器的iis 上就报错,奇怪了! --------------------编程问答-------------------- Request.Cookies["UserCookie"]["username"] 这个没取到值  所以在ToSting的时候会报错的 --------------------编程问答-------------------- 先判断Request.Cookies["UserCookie"]["username"] ! = null再执行下面的 --------------------编程问答-------------------- Request.Cookies["UserCookie"]["username"].ToString();

-------------------------------

断点 看下,有没有取到值。

如果没有,检查 你写cookie的地方,是否正确!

还用是cookie,不是cooker --------------------编程问答-------------------- Request.Cookies["UserCookie"]["username"] 这个值有,取到了
是Request.Cookies["UserCookie"]["role"] 这个报错了
最主要的是本机vs和iis 都没有问题
放在服务器为什么role就没有值了呢。
怎么来调试呢。神奇 --------------------编程问答--------------------
引用 2 楼 ynw506 的回复:
先判断Request.Cookies["UserCookie"]["username"] ! = null再执行下面的

先判断 --------------------编程问答-------------------- 我在本机上调试是正常的没有问题。
主要传到服务器它就在Request.Cookies["UserCookie"]["role"]这里就报错了
我想知道为什么。其它两个cookies值没有问题
如果是没有cookie没有存上的话,那在本机上为什么没有问题,想知道根本原因啊 --------------------编程问答-------------------- if(Request.Cookies["UserCokie"].Values["role"].ToString()!=null)
{
   Role =Request.Cookies["UserCokie"].Values["role"].ToString().Split(',');
}

我加了个判断,为什么还会提示错误,提示if中的的语名引用为空。
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,