From: Anthony Jones on 9 Aug 2008 14:03 "Martin Honnen" <mahotrash(a)yahoo.de> wrote in message news:ey43eWk%23IHA.5392(a)TK2MSFTNGP04.phx.gbl... > Anthony Jones wrote: > > >>> xml.documentElement.transformNodeToObject xsl, Response > > >>> The above works fine on IIS6 and below. On IIS7 however it fails with > >>> 0x80004001 Not Implemented on the transformNodeToObject. > > > > This does appear to be > > specific to the use of transformNodeToObject and the Response object. > > As long as you want to create XML with the transformation you could > first transform to an MSXML DOM document and then save that to the > Response object. But writing HTML or plain text as the transformation > result to the Response object does not seem possible then which is quite > a breaking change. > Exactly, code isn't going to migrate to IIS7 without modification. Fortunately for myself my real world stuff uses a library so I need only tweak the library with a workaround, whenever I can come up with one. For others this could be a more painful experience. I'll try to dig down further, currently its not clear whether the problem is in SP10 of MSXML or IIS7s ASP Response object. -- Anthony Jones - MVP ASP/ASP.NET
From: Anthony Jones on 13 Aug 2008 12:31 "Anthony Jones" <Ant(a)yadayadayada.com> wrote in message news:%23pjwOeX%23IHA.2060(a)TK2MSFTNGP05.phx.gbl... > People, > > Anyone else got an IIS7 server out there that they can test this little ASP > file:- > > <% > Set xml = Server.CreateObject("MSXML2.DOMDocument.3.0") > xml.loadXML "<root />" > > Set xsl = Server.CreateObject("MSXML2.DOMDocument.3.0") > xsl.loadXML "<xsl:stylesheet > xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"" version=""1.0"">" & _ > "<xsl:output method=""xml"" encoding=""UTF-8"" />" & _ > "<xsl:template match=""root""><ok /></xsl:template>" & _ > "</xsl:stylesheet>" > > Response.ContentType = "text/xml" > Response.CharSet = "UTF-8" > xml.documentElement.transformNodeToObject xsl, Response > > %> > > The above works fine on IIS6 and below. On IIS7 however it fails with > 0x80004001 Not Implemented on the transformNodeToObject. > > It seems something has changed in either MSXML or ASP that breaks this code. > > Varitions attempted:- > > Use MSXML6: Still Fails > Set Response.CodePage = 65001: Still fails > Set encoding in output element to "Windows-1252": Still fails > Set method to html: Still fails > > Pass a different object that implements IStream: Succeeds. > > Has Response stop implementing IStream use DOMDocument.Save and pass in the > Response object. That succeeds also so Response still implements IStream. > > I note the MSXML3.dll is SP10 on the 2008 server whereas my MSXML3.dll on > the 2003 server is SP9. > > Can't find any info on changes though. > > Does anyone have any light to shed or can confirm the problem? > Here is an update on this problem. MSXML 3.0 SP10 (msxml3.dll 8.100.1043.0) and MSXML 6.0 SP2 (msxml6.dll 6.20.1076.0) I've only found these on Server 2008 although I haven't checked an XP SP3 machine or Vista SP1. Both of these now call the Commit method on the IStream interface passed to the transformNodeToObject method. Previous versions did not do this. The Response object of ASP does not implement this method and throws an error when asked to do so. The work round is to create a Wrapping Implementation of IStream and absorb the Commit call. :( -- Anthony Jones - MVP ASP/ASP.NET
First
|
Prev
|
Pages: 1 2 Prev: Type mismatch Next: File not found error using #include virtual with UNC path |