我有一些传统的asp经典代码,通常运行正常,所以我还没有替换它(虽然它是我的待办事项列表),它作为更大系统的一部分按计划运行,解析XML文件。
今天发生错误......
msxml3.dll error '80070005'
Access is denied.
/inc/inc_parsexml.asp, line 77
第77行是:
objXML.Load (Server.MapPath(strFilePath))
这是这个更大的snippit的一部分:
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
Set objList = Server.CreateObject("Microsoft.XMLDOM")
objXML.async = False
objXML.Load (Server.MapPath(strFilePath))
If objXML.parseError.errorCode <> 0 Then
'do something here
session("LogMSG") = "XML parse error: " & objXML.parseError.errorCode & " on file " & strFilePath & "<br>" & Session("ErrMSG")
End If
Set objList = objXML.getElementsByTagName("*")
reDim strNodeParentName(objList.length -1)
For intCount = 0 To (objList.length -1)
strNodeParentName(intNodeParentCount) = objList.item(intCount).nodeName
If objList.item(intCount).hasChildNodes Then
buildNodeNameVar()
writeNode()
If objList.item(intCount).firstChild.nodeName = "#text" Then
If intCount <> (objList.length -1) Then
checkParent()
End If
Else
intNodeParentCount = intNodeParentCount +1
End If
Else
buildNodeNameVar()
writeNode()
If intCount <> (objList.length -1) Then
checkParent()
End If
End If
Next
据我所知,它昨天运行正常,但我确实在服务器上安装了ASP.NET AJAX 1.0(http://www.microsoft.com/en-us/download/details.aspx?id=883)(对于asp.net 2.0中的不同项目),所以也许我踩了一些脚趾?
我希望这很简单,请帮助,谢谢!
编辑:感谢John,结果证明IUSER帐户无权访问它试图阅读的文件......答案 0 :(得分:1)
&#34;访问被拒绝&#34;表明您的网站的IUSR帐户被拒绝访问msxml3.dll。您需要找到此文件并检查权限。
假设您没有运行真正旧版本的IIS,您应该拥有该文件的当前版本 - msxml6.dll - 您将使用Server.CreateObject("Msxml2.DomDocument.6.0")
您可能会发现它是正确的此版本的权限已经到位,您无权访问
修改
当我在评论中到达那里时,这个答案是错误的。我应该更仔细地阅读这个问题。如果IUSR帐户确实无法访问dll,那么脚本将在Server.CreateObject之前落在三行上
答案 1 :(得分:1)
我刚刚经历过同样的问题。经过大量的搜索和尝试后,我发现我试图保存一个仍然标记为“只读”的文件。
这解决了我的问题。