a页面用session["aa"] = "aaa";
b页面用label.text = (string)session["aa"];
居然没有保存上 ,b页面无法显示我在另外一个解决方案里测试是可以的
这个解决方案里不行
我把web.config与能保存session的解决方案的web.config比较了,设置成完全一样的,仍然不行我该到哪里找原因呢?
b页面用label.text = (string)session["aa"];
居然没有保存上 ,b页面无法显示我在另外一个解决方案里测试是可以的
这个解决方案里不行
我把web.config与能保存session的解决方案的web.config比较了,设置成完全一样的,仍然不行我该到哪里找原因呢?
debug yi xia
b页面用label.text = Session["aa"].ToString();试试看
程序不会出错的
TO:2楼Session["aa"].ToString()这样会出错,因为Session["aa"]中无内容
用Session["aa"] == null 返回true
下面的我的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>
都是使用VS的内部IIS运行的.我直接使用IIS用localhost访问,session仍然不可能
看到哪个地方出的问题
a页面有问题没?
在哪里丢失的输入法坏了如果是.net2.0
我记得半年前就有个bug是
如果进行了对文件夹的删除(或者改名)
会造成Session的丢失
文件夹的更名或删除指的哪些文件夹?
我使用session的文件夹没有更过名的我试一上跟踪
是说代码中执行过这样的操作,如:
Session["a"]="a";
DirectoryInfo.Delete(or Move)("c:\temp")会造成当前例程重启(好像是这样)
自然Session就丢失了可能还有其他bug
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"]);
}
}
{ 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());
}
只不过你看你的条件if (Session["aa"] == null)SESSION是空的时候执行
Session["aa"] = DateTime.Now.ToString();
Response.Write(DateTime.Now.ToString());
Response.Write("<br/>");
Response.Write((string)Session["aa"]);那么不是空的时候不就不执行了..你这样写。页面什么都没显示才是正确的
看下面最简单的代码:<%@ 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>
应该是第一次运作显示两个时间,刷新一下只显示一个了
而在我的这个解决方案方里,每次刷新都显示两个
在另一个解决方案里测试,刷新后就显示一个
你没看清楚吗?条件你的是session=null
那么空值执行
Session["aa"] = DateTime.Now.ToString();
Response.Write("<br/>");
Response.Write((string)Session["aa"]);
这一句已经把一个叫AA的SESSION保存进来了。那么当你刷新页面的时候,SESSION就不是空了
这样页面显示应该是什么都没有,因为SESSION不等于空,所不会执行IF语句里的东西
如果是从a链接到b,还是null,那就看看IIS的设置,“网站”属性-〉允许Session
原来就是web.config里的设置问题
<pages buffer="true" enableSessionState="ReadOnly" enableViewState="false" enableViewStateMac="false" smartNavigation="false"/>
enableSessionState="ReadOnly"禁止了使用session
怪不得太本页都不能写session
由于本人对web.config还不了解,所以搞了这个低给的一个错误
这里多谢,楼上诸位朋友的帮助!!分数不多,视回贴质量给大家献分了