a页面用session["aa"] = "aaa";
b页面用label.text = (string)session["aa"];
居然没有保存上 ,b页面无法显示我在另外一个解决方案里测试是可以的 
这个解决方案里不行 
我把web.config与能保存session的解决方案的web.config比较了,设置成完全一样的,仍然不行我该到哪里找原因呢?

解决方案 »

  1.   

    b页面无法显示?
    debug yi xia
      

  2.   

    a页面用Session["aa"] = "aaa";
    b页面用label.text = Session["aa"].ToString();试试看
      

  3.   

    TO:1楼
    程序不会出错的
    TO:2楼Session["aa"].ToString()这样会出错,因为Session["aa"]中无内容
    用Session["aa"] == null 返回true
      

  4.   

    web.config应该是正确的,我与另一个seesion正常的web.congif对比过的.
    下面的我的web.config的全部内容
    --------------------------------<?xml version="1.0"?>
    <configuration>
    <appSettings>
    <add key="database" value="MSSQL"/>
    <add key="WebDAL" value="CMS.SQLServerDAL"/>
    <add key="Event Log Source" value="CMS"/>
    </appSettings>
    <connectionStrings>
    <add name="MSSQL" connectionString="Uid=sa;Pwd=88888888;Initial Catalog=CMS_4;Data Source=LZ\LZ;Connect Timeout=900"/>
    </connectionStrings> <system.web> <sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="Uid=sa;Pwd=ghdqlz,.-;Initial Catalog=CMS_4;Data Source=LZ\LZ"  cookieless="false" timeout="20"/>
        
    <customErrors defaultRedirect="Error.aspx" mode="RemoteOnly"/> <pages buffer="true" enableSessionState="ReadOnly" enableViewState="false" enableViewStateMac="false" smartNavigation="false"/> <xhtmlConformance mode="Legacy"/>
    <compilation debug="true"/> <globalization requestEncoding="utf-8" responseEncoding="utf-8"/> <authentication mode="Windows"/>
    <authorization>
    <allow users="*"/> </authorization> </system.web></configuration>
      

  5.   

    to:WNASP(好好学习,天天向上)
    都是使用VS的内部IIS运行的.我直接使用IIS用localhost访问,session仍然不可能
      

  6.   

    刚才是要你跟踪一下Session
    看到哪个地方出的问题
    a页面有问题没?
    在哪里丢失的输入法坏了如果是.net2.0
    我记得半年前就有个bug是
    如果进行了对文件夹的删除(或者改名)
    会造成Session的丢失
      

  7.   

    to:楼上
    文件夹的更名或删除指的哪些文件夹?
    我使用session的文件夹没有更过名的我试一上跟踪
      

  8.   

    不是
    是说代码中执行过这样的操作,如:
    Session["a"]="a";
    DirectoryInfo.Delete(or Move)("c:\temp")会造成当前例程重启(好像是这样)
    自然Session就丢失了可能还有其他bug
      

  9.   

    测试发现,即使是在本页,session的页也不能保存下来,一刷新便失效,看下面的代码:
            protected void Page_Load(object sender, EventArgs e)
            {
                if (Session["aa"] == null)
                {
                    Session["aa"] = DateTime.Now.ToString();
                    Response.Write(DateTime.Now.ToString());
                    Response.Write("<br/>");
                    Response.Write((string)Session["aa"]);
                }
            }
      

  10.   

    protected void Page_Load(object sender, EventArgs e)
        {        if (Session["aa"] == null)
            {
                Session["aa"] = DateTime.Now.ToString();
                Response.Write(DateTime.Now.ToString());
                Response.Write("<br/>");
                Response.Write(Session["aa"].ToString());        }
            else
            {
                Response.Write(Session["aa"].ToString());
            }
      

  11.   

    其实你写的SESSION已经是保存下来的
    只不过你看你的条件if (Session["aa"] == null)SESSION是空的时候执行
    Session["aa"] = DateTime.Now.ToString();
    Response.Write(DateTime.Now.ToString());
    Response.Write("<br/>");
    Response.Write((string)Session["aa"]);那么不是空的时候不就不执行了..你这样写。页面什么都没显示才是正确的
      

  12.   

    现在的问题是,在我的这个解决方案的环境里,为什么Session不可用?
    看下面最简单的代码:<%@ Page Language="C#" %>
    <html>
    <head runat="server">
        <title>无标题页</title>
    </head>
    <body>
        <form id="form1" runat="server">
         <% Response.Write(System.DateTime.Now.ToString());
            Response.Write("<br/>");
           if (Session["aa"] == null)
            {
                Session["aa"] = DateTime.Now.ToString();
                Response.Write("<br/>");
                Response.Write((string)Session["aa"]);
            }        
             %>
       </form>
    </body>
    </html>
    应该是第一次运作显示两个时间,刷新一下只显示一个了
    而在我的这个解决方案方里,每次刷新都显示两个
    在另一个解决方案里测试,刷新后就显示一个
      

  13.   

    什么为什么不可以用,本来就是可以用的,而且是对的
    你没看清楚吗?条件你的是session=null
    那么空值执行
               Session["aa"] = DateTime.Now.ToString();
                Response.Write("<br/>");
                Response.Write((string)Session["aa"]);
    这一句已经把一个叫AA的SESSION保存进来了。那么当你刷新页面的时候,SESSION就不是空了
    这样页面显示应该是什么都没有,因为SESSION不等于空,所不会执行IF语句里的东西
      

  14.   

    如果是两个,就是SESSION没保存了呗~
      

  15.   

    我大胆地设想一下,你一个浏览器打开a.aspx页面,另一个浏览器打开b.aspx页面,这样肯定不行的。
    如果是从a链接到b,还是null,那就看看IIS的设置,“网站”属性-〉允许Session
      

  16.   

    SESSION是保存同一个浏览器所产生的ID号的SESSION,不同浏览器所产生的ID号自然不同,当然不能识别为同一个SESSION
      

  17.   

    晕,找到原因了
    原来就是web.config里的设置问题
    <pages buffer="true" enableSessionState="ReadOnly" enableViewState="false" enableViewStateMac="false" smartNavigation="false"/>
    enableSessionState="ReadOnly"禁止了使用session
    怪不得太本页都不能写session
    由于本人对web.config还不了解,所以搞了这个低给的一个错误
    这里多谢,楼上诸位朋友的帮助!!分数不多,视回贴质量给大家献分了