Microsoft.XMLDOM msxml3.dll错误' 80070005'访问被拒绝。 (代码昨天工作,我认为安装ASP.NET AJAX 1.0打破了吗?)

时间:2014-11-29 14:19:14

标签: asp-classic iis-6

我有一些传统的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帐户无权访问它试图阅读的文件......

2 个答案:

答案 0 :(得分:1)

&#34;访问被拒绝&#34;表明您的网站的IUSR帐户被拒绝访问msxml3.dll。您需要找到此文件并检查权限。

假设您没有运行真正旧版本的IIS,您应该拥有该文件的当前版本 - msxml6.dll - 您将使用Server.CreateObject("Msxml2.DomDocument.6.0")您可能会发现它是正确的此版本的权限已经到位,您无权访问

修改

当我在评论中到达那里时,这个答案是错误的。我应该更仔细地阅读这个问题。如果IUSR帐户确实无法访问dll,那么脚本将在Server.CreateObject之前落在三行上

答案 1 :(得分:1)

我刚刚经历过同样的问题。经过大量的搜索和尝试后,我发现我试图保存一个仍然标记为“只读”的文件。

这解决了我的问题。