ASP.NET Forum 中禁用含有子版块的版块后产生的"未将对象引用设置到对象的实例"异常的处理方法

原创 2004年09月23日 10:43:00
如果禁用了存在子版块的版块,将会出现如下的异常:

Message: 发生类型为 System.Web.HttpUnhandledException 的异常。

System.NullReferenceException: 未将对象引用设置到对象的实例。 at AspNetForums.Data.SqlDataProvider.GetForums(Int32 siteID, Int32 userID, Boolean ignorePermissions, Boolean mergePermissions) at AspNetForums.Data.SqlDataProvider.GetForums(Int32 siteID, Int32 userID, Boolean ignorePermissions) at AspNetForums.Forums.GetForums(ForumContext forumContext, Int32 userID, Boolean ignorePermissions, Boolean cacheable) at AspNetForums.Components.ForumContext.get_ForumLookupTable() at AspNetForums.Components.ForumContext.GetForumFromForumLookupTable(Int32 forumID) at AspNetForums.Controls.BreadCrumb.AddForum(Int32 forumID) at AspNetForums.Controls.BreadCrumb.CreateChildControls() at System.Web.UI.Control.EnsureChildControls() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Control.PreRenderRecursiveInternal() at System.Web.UI.Page.ProcessRequestMain()

产生这个异常的代码是: SqlDataProvider.cs 文件中 第3223
((Forum) forums[f.ParentID]).Forums.Add(f);

当系统读取子版块信息时,会尝试从 forums 集合中取父版块的引用.此时,因为父版块已被禁用,并没有包含在 forums 中,从而就造成了异常的产生.

解决方案:

1.修改代码.

把SqlDataProvider.cs 文件中 第3222
if (f.ParentID > 0)
      ((Forum) forums[f.ParentID]).Forums.Add(f);
    }
修改为:
if (f.ParentID > 0 && forums[f.ParentID] != null)
      ((Forum) forums[f.ParentID]).Forums.Add(f);
    }

2.修改存储过程

因为小第属SQL低手,在此只提供建议,不做实施.[:#]

可以通过修改存储过程 forums_Forums_Get 使其在取论坛信息的时候就不取禁用的版块的子版块.如果哪位大虾改好了希望可以告诉我一声.

asp.net经典问题之“未将对象引用设置到对象的实例”

相信几乎所有学过asp.net的朋友都遇到过这个问题:未将对象引用设置到对象的实例。这个问题在我刚开始学习这方面的知识的时候真有点让崩溃的感觉,当时都快打击死我了,不过经过了以后,反而有一种明朗的小激...
  • sunqing0316
  • sunqing0316
  • 2014年03月12日 17:03
  • 58357

WebService客户端引用 服务器无法处理请求。 ---> 未将对象引用设置到对象的实例

问题服务引用后报错:WebService客户端引用 服务器无法处理请求。 —> 未将对象引用设置到对象的实例webservice在这里 http://webservice.webxml.com.cn/...
  • u011800822
  • u011800822
  • 2016年06月24日 22:06
  • 4164

C#一般处理程序设置和读取session(session报错“未将对象引用设置到对象的实例”解决)

做自己的毕业设计登陆模块时,用到了session和cookie。在一般处理程序中处理session,一直报错。最后找到问题原因是需要调用 irequiressessionstate接口。 在as...
  • u014190216
  • u014190216
  • 2016年04月16日 15:15
  • 2824

asp.net经典问题之“未将对象引用设置到对象的实例”

相信几乎所有学过asp.net的朋友都遇到过这个问题:未将对象引用设置到对象的实例。这个问题在我刚开始学习这方面的知识的时候真有点让崩溃的感觉,当时都快打击死我了,不过经过了以后,反而有一种明朗的小激...
  • sunqing0316
  • sunqing0316
  • 2014年03月12日 17:03
  • 58357

asp.net经典问题之“未将对象引用设置到对象的实例”

转载自:http://blog.csdn.net/sunqing0316/article/details/20797245         相信几乎所有学过asp.net的朋友都遇到...
  • ryan_qmz
  • ryan_qmz
  • 2017年12月02日 12:00
  • 37

asp.net开发之“未将对象引用到实例”

相信几乎所有学过ASP.NET的朋友都遇到过这个问题:未将对象引用设置到对象的实例。下面,就来看一下到底都有哪些原因会造成这个问题的出现和解决方法 一、数据库方面  1、ViewState...
  • barenk
  • barenk
  • 2017年07月01日 14:05
  • 497

简单的asp.net模拟邮箱系统基础实现(一 总体功能版块的设计,与简单数据库的设计)

一、设计内容 用ASP.NET技术开发一个模拟邮件系统,界面自定,要求具有如下功能: 1、 首用户能够注册 2、 用户登录后 l 查看用户注册信息 l 可以发信给其它用户 l 查看来信,对来信进行回复...
  • WYR_try
  • WYR_try
  • 2017年03月08日 00:22
  • 428

简单的asp.net模拟邮箱系统基础实现(二 (1)具体版块功能的实现及关键代码之注册页面)

注册页面:   body style="background:url(image/back.jpg)">     form id="form1" runat="server">         h1 ...
  • WYR_try
  • WYR_try
  • 2017年03月08日 12:35
  • 255

"未将对象引用设置到对象的实例"异常的几种常见场合 【转载留着查找方面,哈哈】

在.net编程中,当我们使用一个并不存在的对象时,系统就会抛出这个异常:System.NullReferenceException: 未将对象引用设置到对象的实例。下面把几种常见的场合做下介绍:  ...
  • Sara_YHL
  • Sara_YHL
  • 2013年01月24日 09:12
  • 6282

MySqlConnection.get_IsPasswordExpired()异常未将对象引用设置到对象实例

1. MySqlConnection.get_IsPasswordExpired()异常未将对象引用设置到对象实例 今天在处理.Net连接MySql数据库时,遇到一个错误: MySqlConnec...
  • alanzyy
  • alanzyy
  • 2016年01月05日 17:19
  • 1486
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASP.NET Forum 中禁用含有子版块的版块后产生的"未将对象引用设置到对象的实例"异常的处理方法
举报原因:
原因补充:

(最多只允许输入30个字)