堆栈跟综:System.NullReferenceException: 未将对象引用设置到对象的实例。我在Global.asax文件的Application_Start中添加了一个Timer事件,在事件中读取XML文档总是出错,未将对象引用设置到对象的实例。但是我把代码复制到WEB页面上运行却是可以的,让Timer事件定时执行就是读取不到总是出错,请高手指点哪里有问题?public static string WebSiteXml(string XmlPath, string XmlName)
        {
            string path = HttpContext.Current.Server.MapPath(XmlPath);
            XmlDocument xml = new XmlDocument();
            xml.Load(path);
            XmlNode node = xml.SelectSingleNode(XmlName);
            return node.InnerText;
        }
调用:
        bool AAA = Convert.ToBoolean(BbsyxConfig.WebSiteXml("/Inc/ABC.xml", "/xmlhtml/AAA"));

解决方案 »

  1.   

    本帖最后由 net_lover 于 2011-04-18 11:34:36 编辑
      

  2.   

    Application_Start
    事件里面,有些对象是不能使用的。
    参见
    http://dotnet.aspx.cc/file/Getting-Website-absolute-path-in-asp.net.aspx
      

  3.   

    未将对象引用设置到对象的实例 这种错误大多都跟null值相关
      

  4.   

    路径不可能有问题吧,文件是存在的,我把代码复制到WEB页面去执行是可以取到值的
      

  5.   

    不知道是什么原因,我手动去执行这个方法是对的,放在Timer事件中让程序自动定时去执行却出错了,
      

  6.   

    调试看看哪里是null  
    这种错误 80%以上都是 有对象是null 或没有初始化对象 就调用了对象里的方法
      

  7.   

    调试一下 看看有没有NULL值 这种错误多半是应为调用的时候 出现了null值
      

  8.   

    HttpContext.Current.Server.MapPath(XmlPath);
    HttpContext.Current.Server这个不能用,要不就是你路径不对
      

  9.   

    HttpContext.Current.Server.MapPath();
    这个不能用,那用什么替代?我也感觉是这个有问题
      

  10.   

    问题解决了,要使用这个才对:
    HostingEnvironment.MapPath()
    不是
    HttpContext.Current.Server.MapPath()