Click Here

相信能,才能
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

IE WebControl 无法显示XML的问题

Posted on 2006-10-08 23:03  鬼手  阅读(1994)  评论(3)    收藏  举报

今天在两台服务器上分别装两个网站,都出现了同样的问题:
 

“/Nmetc”应用程序中的服务器错误。

根级别上的数据无效。 行 1,位置 1。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Xml.XmlException: 根级别上的数据无效。 行 1,位置 1。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:

[XmlException: 根级别上的数据无效。 行 1,位置 1。]
   System.Xml.XmlTextReader.ParseRoot() +295
   System.Xml.XmlTextReader.Read() +127
   Microsoft.Web.UI.WebControls.TreeView.ReadXmlSrc(String TreeNodeSrc, String TreeNodeXsltSrc, String strOuter) +127
   Microsoft.Web.UI.WebControls.TreeNode.ReadXmlSrc() +81
   Microsoft.Web.UI.WebControls.TreeNode.Databind() +67
   Microsoft.Web.UI.WebControls.TreeView.OnInit(EventArgs e) +211
   System.Web.UI.Control.InitRecursive(Control namingContainer) +241
   System.Web.UI.Control.InitRecursive(Control namingContainer) +179
   System.Web.UI.Control.InitRecursive(Control namingContainer) +179
   System.Web.UI.Page.ProcessRequestMain() +178


版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573

搜索了一下,基本上有以下几个可能:
1.XML格式不对
2.XML路径不对
3.IIS中禁用了匿名访问
可是,我的问题应该可以排除这些可能,原因如下:
1.代码在单位和家里不同的操作系统测试都成功;
2.服务器自身访问没有任何问题,只是其它机器访问报错;
那么分析一下,唯一和服务器不同的地方应该是分区格式(当时没看,但估计两台服务器都是NTFS分区),明天再去看看,给虚拟目录中添加Internet 来宾帐号试试。
如果真是NTFS的问题,安装完网站后第一件事情就是要把自己的机子换成NTFS分区,当时因为偷懒,一直没转换格式。
=====
问题解决:应该是XML的路径问题,将TreeView控件的TreeNodeSrc参数
TreeNodeSrc="Xml/NavigateTree.xml"
改成
TreeNodeSrc="d:\****\Xml\NavigateTree.xml"
这样的绝对路径后,其它机器访问正常。
不过,新问题又来了,按说这样的绝对路径是不可取的,并且我在单位和家中的机器中使用的“../XML/****.xml”这样的路径一点问题都没有。
也许和操作系统的某个参数设置有关,有时间再研究看看到底是哪里的问题造成TreeView控件不能读取相对路径。