我在一个页面中设置了一个Session值,然后在另外一个页面中引用。
比如说
a.aspx中
Session["demo"]="hello";b.aspx中
string b=Session["demo"];但是我发现,如果我设置了断点调试,则可以正常的得到b="hello"
如果我不设置断点,让程序直接运行,则b永远得不到"hello"值。
加上if(Session["demo"]==nill)测试,发现Session["demo"]是空对象,请问这是为什么呀!如何解决!

解决方案 »

  1.   

    这是页面一:
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    if (Session["Elocnte_Open"]==null)
    Session.Add("Elocnte_Open",true);
    else
    Session["Elocnte_Open"] = true; }
    这是页面二中:
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    string id = Request.QueryString["id"];
    bool flag=true;
                                
    if (Session["Elocnte_Open"]=null)  //如果在这设断点,则当前条件不成立,否则条件成立,奇怪!
    flag = false;
    if(!Session["Elocnte_Open"].Equals(true))
    flag = false; if (flag)
    {
                                         // do something
    Session["Elocnte_Open"] = false;
    }
    else
    {
                                }
                              }
      

  2.   

    补充一下,页面一是主页面,里面有个Mediaplayer控件,Mediaplayer控件中的文件URL指向页面二,也就是说由页面二提供音乐文件的地址。
      

  3.   

    if (Session["Elocnte_Open"]=null) --->
    if (Session["Elocnte_Open"]==null)
      

  4.   

    string b=(string)Session["...."];
      

  5.   

    to: smx717616(闭关中…) 
    是我打错了,可是我改过来了,还是没用!
      

  6.   

    奇怪的是,还有这种情况:string tmp = Request.UserAgent;
    // 如果我在这设了断点,则可以得到UserAgent,否则为空?????
    if (tmp.IndexOf("Windows-Media-Player")<0)
      flag = false;这又是怎么回事呢?