Message="未将对象引用设置到对象的实例。"

needacoder 2012-04-15 09:53:38
这句出错:
String test = Application["test"].ToString();

出错信息如下:
用户代码未处理 System.NullReferenceException
Message="未将对象引用设置到对象的实例。"
Source="App_Web_hjqkcgyq"
StackTrace:
在 TestList.Button2_Click(Object sender, EventArgs e) 位置 k:\WebSite4\WebSite4\a\TopicList.aspx.cs:行号 61
在 System.Web.UI.WebControls.Button.OnClick(EventArgs e)
在 System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
在 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
InnerException:
...全文
471 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
暖枫无敌 2012-04-15
  • 打赏
  • 举报
回复
1、对的,是这样的
2、不会
needacoder 2012-04-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]
同一个页面用ViewState,如果是跨页面的话,建议使用Session
[/Quote]
那么
1. 设有A、B两个用户登录了,A设的Session不会影响B,A设的Application会影响B,对么?
2. 如果有两个人都在匿名的情况下建立了Session的话,Session会不会在服务器上体现为同一个变量而同时影响所有未登录用户?
暖枫无敌 2012-04-15
  • 打赏
  • 举报
回复
同一个页面用ViewState,如果是跨页面的话,建议使用Session
needacoder 2012-04-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
如果使用全局变量,使用Cache比Application好
[/Quote]
啊,那严重了
还得用Viewstate
但是下面是是你回的,还没解决viewstate
http://topic.csdn.net/u/20120415/07/dfc31cf4-2cdd-43d6-aae7-b1e3a1699115.html
孟子E章 2012-04-15
  • 打赏
  • 举报
回复
如果使用全局变量,使用Cache比Application好
孟子E章 2012-04-15
  • 打赏
  • 举报
回复
Application["test"]是全局变量啊,每个用户看到的都是一样的,不能使用Application变量保存那样的信息
needacoder 2012-04-15
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
String test =(Application["test"]!=null?Application["test"].ToString():"");
[/Quote]
如上层所说,我给值了
needacoder 2012-04-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
你确定你在这个地方使用Application["test"]之前,已经给他赋值过了??如果没有的话,肯定找不着了,如果确实已经赋值了,那么可能的原因是:
应用程序会在应用程序池的设置条件满足时,进行重启的,导致数据丢失。
[/Quote]
我确定
Application["test"]= TreeView1.SelectedNode.ValuePath.ToString();
你说的重启是怎么回事
我刚试下网页就怎么要重启呢?
暖枫无敌 2012-04-15
  • 打赏
  • 举报
回复
你确定你在这个地方使用Application["test"]之前,已经给他赋值过了??如果没有的话,肯定找不着了,如果确实已经赋值了,那么可能的原因是:
应用程序会在应用程序池的设置条件满足时,进行重启的,导致数据丢失。
  • 打赏
  • 举报
回复
String test =(Application["test"]!=null?Application["test"].ToString():"");

yyl8781697 2012-04-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
判断一下Application["test"]是否为空,不等于空才赋给test
[/Quote]
+++
要看Application["test"]的值
tan598121925 2012-04-15
  • 打赏
  • 举报
回复
判断一下Application["test"]是否为空,不等于空才赋给test
EnForGrass 2012-04-15
  • 打赏
  • 举报
回复
Application["test"]为Null
自己调试一下,做个容错,这样
String test ="";
if(String.IsNullOrEmpty(Application["test"]))
{
test = Application["test"].ToString();
}

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧