I'm trying to move a Classic ASP app from WinXP Pro IIS6 to Win2K8 IIS7. The app has the following function (and many more like this):
Code:
function findXmlRecord(strXmlFile, strXPath)
'This function returns an array holding all child node values where xmlDoc.ChildNodes(0).IdAttributeValue = valueStoredInDb
'The function expects the following 2 arguments:
' 1) strXmlFile - <string> xml file name
' 2) strXPath - <string> XPath query criteria
Dim xmlDoc, oNode, cNodes, i
Dim arReturn()
Set xmlDoc = Server.CreateObject("Msxml2.DOMDocument.6.0")
xmlDoc.async = False
If xmlDoc.load(Session("appDataPath") & strXmlFile) Then
xmlDoc.setProperty "SelectionLanguage", "XPath"
Set oNode = xmlDoc.selectNodes(strXPath)
Set cNodes = oNode.item(0).childNodes
Redim arReturn((cNodes.Length)-1) 'length is not zero based so have to do minus 1
For i = 0 to ((cNodes.Length)-1)
arReturn(i) = cNodes(i).text
Next
Set oNode = Nothing
Set cNodes = Nothing
End If
set xmlDoc = nothing
findXmlRecord = arReturn
end function
function call example:
Code:
Response.Write(findXmlRecord("lists/classNames.xml", "/classNames/className[@ID = '" & oRs("classNameId") & "']")(0))
portion of the xml file:
Code:
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Do not change any ID values in this document as they are stored in the GT database -->
<classNames>
<className ID="1">
<classNameText>Other</classNameText>
<classNameSort>AAA</classNameSort>
</className>
<className ID="2">
<classNameText>Study Hall</classNameText>
<classNameSort>AAA</classNameSort>
</className>
<className ID="3">
<classNameText>NILD</classNameText>
<classNameSort>AAA</classNameSort>
</className>
<className ID="4">
<classNameText>Art 6</classNameText>
<classNameSort>BBB</classNameSort>
</className>
<className ID="5">
<classNameText>Art I</classNameText>
<classNameSort>BBB</classNameSort>
</className>
<className ID="6">
<classNameText>Art II</classNameText>
<classNameSort>BBB</classNameSort>
</className>
<className ID="7">
<classNameText>Art III</classNameText>
<classNameSort>BBB</classNameSort>
</className>
<className ID="8">
<classNameText>Art IV</classNameText>
<classNameSort>BBB</classNameSort>
</className>
<className ID="11">
<classNameText>Art MC</classNameText>
<classNameSort>BBB</classNameSort>
</className>
</classNames>
On my laptop running XP Pro (and I think IIS6) I can call findXmlRecord just fine placing all className childnodes into an array where the className node ID attribute value = oRs("classNameId"). However the whole app comes crashing down when I copy it to my Win2K8 server running IIS7. What's weird is that I don't get any error messages, it's just that whenever I try to harvest data from my xml documents via "Set xmlDoc = Server.CreateObject("Msxml2.DOMDocument.6.0")" I get absoulutly no data. Like I said it works perfectly on my XP machine.
Can anyone give me some direction?
Thanks