XML : ASP error: msxml3.dll error 80070005, access is denied. How do I set the correct permissions?

I am having some trouble with this in-browser form. I am learning how to edit XML in-browser with XSLT and ASP, following a tutorial. I installed IIS, and enabled the ASP features, but when I attempt to run my code, I receive this error:

msxml3.dll error '80070005'

Access is denied.

/xmlEdit/edittool.asp, line 43

What am I doing wrong here? I feel like this is probably something to do with my permissions or settings in IIS, but I'm a newbie to setting up IIS and web testing environments. The code is from w3schools' exit XML tutorial.

tool.xml:

  <?xml version="1.0" encoding="UTF-8"?>  <tool>    <field id="prodName">      <value>HAMMER HG2606</value>    </field>    <field id="prodNo">      <value>32456240</value>    </field>    <field id="price">      <value>$30.00</value>    </field>  </tool>    

tool.xsl:

  <?xml version="1.0" encoding="UTF-8"?>  <xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">    <xsl:template match="/">    <html>    <body>    <form method="post" action="edittool.asp">    <h2>Tool Information (edit):</h2>    <table border="0">      <xsl:for-each select="tool/field">      <tr>        <td><xsl:value-of select="@id"/></td>        <td>        <input type="text">        <xsl:attribute name="id">          <xsl:value-of select="@id" />        </xsl:attribute>        <xsl:attribute name="name">          <xsl:value-of select="@id" />        </xsl:attribute>        <xsl:attribute name="value">          <xsl:value-of select="value" />        </xsl:attribute>        </input>        </td>      </tr>      </xsl:for-each>    </table>    <br />    <input type="submit" id="btn_sub" name="btn_sub" value="Submit" />    <input type="reset" id="btn_res" name="btn_res" value="Reset" />    </form>    </body>    </html>  </xsl:template>    </xsl:stylesheet>    

tool_updated.xsl:

  <?xml version="1.0" encoding="UTF-8"?>  <xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">    <xsl:template match="/">    <html>    <body>    <h2>Updated Tool Information:</h2>    <table border="1">      <xsl:for-each select="tool/field">      <tr>        <td><xsl:value-of select="@id" /></td>        <td><xsl:value-of select="value" /></td>      </tr>      </xsl:for-each>    </table>    </body>    </html>  </xsl:template>    

edittool.asp:

  <%  function loadFile(xmlfile,xslfile)  Dim xmlDoc,xslDoc  'Load XML and XSL file  set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")  xmlDoc.async = false  xmlDoc.load(xmlfile)  set xslDoc = Server.CreateObject("Microsoft.XMLDOM")  xslDoc.async = false  xslDoc.load(xslfile)  'Transform file  Response.Write(xmlDoc.transformNode(xslDoc))  end function    function updateFile(xmlfile)  Dim xmlDoc,rootEl,f  Dim i  'Load XML file  set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")  xmlDoc.async = false  xmlDoc.load(xmlfile)    'Set the rootEl variable equal to the root element  Set rootEl = xmlDoc.documentElement    'Loop through the form collection  for i = 1 To Request.Form.Count    'Eliminate button elements in the form    if instr(1,Request.Form.Key(i),"btn_")=0 then      'The selectSingleNode method queries the XML file for a single node      'that matches a query. This query requests the value element that is      'the child of a field element that has an id attribute which matches      'the current key value in the Form Collection. When there is a match -      'set the text property equal to the value of the current field in the      'Form Collection.      set f = rootEl.selectSingleNode("field[@id='" & _      Request.Form.Key(i) & "']/value")      f.Text = Request.Form(i)    end if  next    'Save the modified XML file  xmlDoc.save xmlfile    'Release all object references  set xmlDoc=nothing  set rootEl=nothing  set f=nothing    'Load the modified XML file with a style sheet that  'allows the client to see the edited information  loadFile xmlfile,server.MapPath("tool_updated.xsl")  end function    'If form is submitted, update the XML file and display result  ' - if not, transform the XML file for editing  if Request.Form("btn_sub")="" then    loadFile server.MapPath("tool.xml"),server.MapPath("tool.xsl")  else    updateFile server.MapPath("tool.xml")  end if  %>    

No comments:

Post a Comment