IIS7.5,framework4.0发布网站,不定时出现Object reference not set to an instance of an objec

ma_xiaoyun 2014-03-04 04:53:20
IIS7.5,framework4.0发布网站,不定时出现Object reference not set to an instance of an object。但在调试状态下直接运行是完全没有问题的,从来不会出现这个错误。我是临时在我本机发布的,win7环境,在iis中浏览如http://192.168.0.23:8888,首页一般都能打开,但点击了几个页面后,就会出现空对象错误,而且是有时出现,有时正常,即使是同一个页面也会这样,请问是什么原因?不胜感激!
...全文
20960 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
黑子大哥 2014-03-19
  • 打赏
  • 举报
回复
引用 8 楼 feiyun0112 的回复:
看下sqlHelper.RunProc("Get_SingModuleClass", ParamList, out rec); 有没有设为null跳出的代码
就是这里 out rec为空了 修改一下

 SqlDataReader rec = null;
 try
            {
                sqlHelper.RunProc("Get_SingModuleClass", ParamList, out rec);
            }
            catch (Exception ex)
            {
                SystemError.CreateErrorLog(ex.Message);
                throw new Exception(ex.Message, ex);
            }
if(rec==null)
    {
  SystemError.CreateErrorLog("空");
                throw new Exception(“空对象”, new Excption(“ 空对象”));
}
            ModuleClass moduleClass = new ModuleClass();
            while (rec.Read())
            {
                moduleClass.ID = Int32.Parse(rec["ID"].ToString());
                moduleClass.ClassID = Int32.Parse(rec["ClassID"].ToString());
                moduleClass.ClassName = rec["ClassName"].ToString();
                moduleClass.ParentID = Int32.Parse(rec["ParentID"].ToString());
                moduleClass.ParentOrder = Int32.Parse(rec["ParentOrder"].ToString());
                moduleClass.IsValid = rec["IsValid"].ToString();
                moduleClass.CanEdit = rec["CanEdit"].ToString();
                moduleClass.PageUrl = rec["PageUrl"].ToString();
            }
            return moduleClass;
feiyun0112 2014-03-19
  • 打赏
  • 举报
回复
看下错误日志
ma_xiaoyun 2014-03-19
  • 打赏
  • 举报
回复
引用 8 楼 feiyun0112 的回复:
看下sqlHelper.RunProc("Get_SingModuleClass", ParamList, out rec); 有没有设为null跳出的代码
public void RunProc(string procName, SqlParameter[] prams, out SqlDataReader dataReader) { ///创建Command SqlCommand cmd = CreateProcCommand(procName, prams); try { ///读取数据 dataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection); } catch(Exception ex) { dataReader = null; ///记录错误日志 SystemError.CreateErrorLog(ex.Message); } }
feiyun0112 2014-03-18
  • 打赏
  • 举报
回复
看下sqlHelper.RunProc("Get_SingModuleClass", ParamList, out rec);

有没有设为null跳出的代码
ma_xiaoyun 2014-03-18
  • 打赏
  • 举报
回复
实际上,在vs2010调试状态下,整个系统运行都很正常,为什么一发布就不正常了呢?而且打开同样的页面不会每次出错,而是有时出错,有时不出错!
ma_xiaoyun 2014-03-18
  • 打赏
  • 举报
回复
public ModuleClass Get_SingModuleClass(int nID) { SQLHelper.SQLHelper sqlHelper = new SQLHelper.SQLHelper(); SqlParameter[] ParamList ={ sqlHelper.CreateInParam("@ID",SqlDbType.Int,4,nID) }; SqlDataReader rec = null; try { sqlHelper.RunProc("Get_SingModuleClass", ParamList, out rec); } catch (Exception ex) { SystemError.CreateErrorLog(ex.Message); throw new Exception(ex.Message, ex); } ModuleClass moduleClass = new ModuleClass(); while (rec.Read()) { moduleClass.ID = Int32.Parse(rec["ID"].ToString()); moduleClass.ClassID = Int32.Parse(rec["ClassID"].ToString()); moduleClass.ClassName = rec["ClassName"].ToString(); moduleClass.ParentID = Int32.Parse(rec["ParentID"].ToString()); moduleClass.ParentOrder = Int32.Parse(rec["ParentOrder"].ToString()); moduleClass.IsValid = rec["IsValid"].ToString(); moduleClass.CanEdit = rec["CanEdit"].ToString(); moduleClass.PageUrl = rec["PageUrl"].ToString(); } return moduleClass; }
feiyun0112 2014-03-18
  • 打赏
  • 举报
回复
rec==null
在哪赋值的?
ma_xiaoyun 2014-03-18
  • 打赏
  • 举报
回复
ma_xiaoyun 2014-03-18
  • 打赏
  • 举报
回复
自己顶一下!求高手帮忙解决!
风一样的大叔 2014-03-12
  • 打赏
  • 举报
回复
楼主这个需要自己找代码中的问题,出现null值了
feiyun0112 2014-03-04
  • 打赏
  • 举报
回复
写log看具体出错位置

*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/

17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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