2014-11-29 1 views
1

나는 아직도 그것을 대체하지 않았기 때문에 일반적으로 잘 실행되는 일부 기존 ASP 표준 코드가 있습니다. , 더 큰 시스템의 일부로 일정에 따라 실행되어 XML 파일을 구문 분석합니다.Microsoft.XMLDOM msxml3.dll 오류 '80070005'액세스가 거부되었습니다. (코드가 어제 작동, 어제 ASP.NET AJAX 1.0을 설치 한 것 같아요?)

오늘은 오류를 던지고있다 ...

msxml3.dll error '80070005' 

Access is denied. 

/inc/inc_parsexml.asp, line 77 

라인 77은 다음과 같습니다

이 큰 SNIPPIT의 일부입니다
objXML.Load (Server.MapPath(strFilePath)) 

:

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에서 다른 프로젝트) 어쩌면 내가 발가락을 밟았 을까?

나는 그것이 단순하기를 빌며, 감사합니다.

편집 : 존 덕분에, 그것은

답변

1
귀하의 웹 사이트의 IUSR 계정 인

"액세스가 거부되었습니다"제안 것을 ... IUSER 계정이 읽으려고 한 파일에 접근하지 않았다고 밝혀졌다 msxml3.dll에 대한 액세스가 거부되었습니다. 이 파일을 찾아 사용 권한을 확인해야합니다.

실제 이전 버전의 IIS를 실행하지 않는다고 가정하면을 사용할 msxml6.dll 파일의 최신 버전이 있어야합니다. 올바른 사용 권한이 이미 있음을 알 수 있습니다 내가 코멘트에 거기에 도착하는 동안이 버전에 대한 액세스

편집

거부하지 않는,이 대답은 틀렸다. 나는이 질문을 더주의 깊게 읽어야했다. IUSR 계정이 실제로 dll에 액세스하지 못하면 스크립트는 Server.CreateObject에서 이전에 세 줄을 넘었습니다.

+0

"정말 오래되었습니다." 서버는 2003 년이므로 iis6이라고 믿습니다. (그리고 나는 질문을 태그했습니다.) 내가 제안한 유일한 문제는 어제 코드가 작동했기 때문에 코드를 변경해야한다고 생각하지 않는다는 것입니다. – msimmons

+0

서버에는 msxml6.dll이 있으므로 제안한대로 코드를 수정했지만 여전히 같은 오류가 발생합니다. IUSER_ [servername] 계정을 사용 권한에 추가하고 .dll의 버전 3과 6 모두에 "완전 제어"(과도하게 사용해야 함) 및 여전히 동일한 오류를주었습니다. – msimmons

+4

strFilePath의 값은 무엇입니까? 아마도 그 파일은 액세스가 거부되었습니다. – John

0

방금 ​​같은 문제가 발생했습니다. 많은 검색과 시도를 한 후에도, 나는 단지 "읽기 전용"으로 표시된 파일을 저장하려고 시도하는 것으로 나타났습니다.

이 문제가 해결되었습니다.