在IE里直接运行没有任何问题
可是一用VS2005调试项目,固定的几个页面死活无法访问Session对象
Session.Count()都引发 System.NullReferenceException 异常
跟踪进去 发现 根本无法访问Session,监视Session都报错Session “Session”引发了“System.ArgumentNullException”类型的异常 System.Web.SessionState.HttpSessionState {System.ArgumentNullException}大侠救命!~!!!!
可是一用VS2005调试项目,固定的几个页面死活无法访问Session对象
Session.Count()都引发 System.NullReferenceException 异常
跟踪进去 发现 根本无法访问Session,监视Session都报错Session “Session”引发了“System.ArgumentNullException”类型的异常 System.Web.SessionState.HttpSessionState {System.ArgumentNullException}大侠救命!~!!!!
解决方案 »
- div 滚动条 位置
- .Net开发一个平台,能做的进来详细看!
- 我想深入学习一下service broker,大家多多提供给我一些实际案例,我想做与前端应用程序之间的消息交互.
- 200分。高分。用JS控制treeview里的checkbox选中父接点,子结点也选种,取消父接点,子结点也取消的问题,解决了我再开帖放分
- ASP.NET 报表制作问题?那种报表最合适???
- repeater的DataBound事件和一个奇怪的文本框问题
- 关于DataGrid问题高分求助!!
- xml??
- QueryString 字符出错的问题!!
- asp.net中网页过期问题。
- 新手问题,ASP.net自带MD5加密函数?
- 请教下拉列表和标签连动的问题
http://community.csdn.net/Expert/topic/4756/4756267.xml?temp=.7962
可说的办法都不行
我现在的问题不是Session里的变量丢失或者失效
而是在VS2005里调试项目 固定几个页面Session就无法访问
但 在IE里直接运行项目 没有任何问题
但关键是 怎么会 Session=null
然后监视 Session(不是Session里存储的变量,就是整个Session)
就会提示:
Session “Session”引发了“System.ArgumentNullException”类型的异常 System.Web.SessionState.HttpSessionState {System.ArgumentNullException}
不会是VS2005的问题吧?
虽然你存储在了数据库,看看你此时的SessionID是否重建了,可以先打印出来与数据库对比
在使用Session前,一定要加是否为NULL的判断!如果null了,还继续往下操作,就会发生LZ所说的异常!只有你要察看的Session不是null,你才能继续往下走,否则转到登陆页面重新登陆(如果有的话,或者其他的本网站的起始页面)。这一点在我的开发中体会颇深!!!
调试的时候 访问 Application时(是整个Application对象,不是Application[XX])
也同样引发异常:
+ Application “Application”引发了“System.NullReferenceException”类型的异常 System.Web.HttpApplicationState {System.NullReferenceException}
{
context.Trace.Warn("Session is null!");
return string.Empty;
}会看到Session is null!
为什么会发生这种情况呢?
Substitution控件,缓存后替代的方法内发生的。一半打开页面都没问题,快速在刷新就会出现这种情况。
Vs2005 文件系统 调试。
根据session是否可写,有两个标记接口可用。
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class ReadArticle : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
} public static string AMethod(HttpContext context)
{
if (context.Session == null)
{
context.Trace.Warn("Session is null!");
return string.Empty;
}
else
{
return "something";
}
}
}
前面是:<asp:Substitution ID="Substitution_xxx" runat="server" MethodName="AMethod" />
我这里还是只有第一次Session不是null,以后在访问都是null了。
如果需要,我可以挂到网上去,给你们看。
if(Session["aaa"]!=null)
{
string aa=Session["aaa"].ToString();
}
楼主这句话是判断某个Session存在????你不判断也可以加一个try
try
{
if (context.Session == null)
{
context.Trace.Warn("Session is null!");
return string.Empty;
}
else
{
return "something";
}
}
catch
{
return "something"; }
认真看帖子就会明白楼主和我的意思了。还是有人没看清楚,不是Session["aaa"] == null,而是Session == null。
二者不一样。