Microsoft KB Archive/328998

= INFO: List of Issues Fixed in MSXML 3.0 Service Pack 3 (Part 2) =

Article ID: 328998

Article Last Modified on 11/18/2005

-

APPLIES TO


 * Microsoft XML Parser 3.0 Service Pack 3

-



This article was previously published under Q328998



SUMMARY
This article is part 2 of 2 articles that document the bugs that are fixed in MSXML 3.0 Service Pack 3 (SP3).



The ServerXmlHttp Does Not Return Cookies When Using NTLM Authentication
You can use the ServerXMLHTTP object to retrieve and re-submit session cookies. You can retrieve the cookie from the Response Header and re-submit the cookie through the Request Header. When you access an NTLM Web site, the cookie is lost when you re-submit.

For additional information about this problem, click the article number below to view the article in the Microsoft Knowledge Base:

326847 ServerXMLHTTP Does Not Return Cookies Using NTLM Authentication

Iterating a Marshaled IXMLDOMNodeList Fails the Second Time
When you use a Microsoft Visual Basic For...Each loop construct to repeatedly enumerate an IXMLDomNodeList interface that has undergone cross process, marshaling returns no data the second time.

For example, the following method is implemented in a COM+ Server component: Public Function GetEmployees As MSXML2.IXMLDOMNodeList

Dim doc As New MSXML2.DOMDocument30 doc.loadXML &quot;JackJohn&quot;

Dim EmpList As MSXML2.IXMLDOMNodeList

doc.setProperty &quot;SelectionLanguage&quot;, &quot;XPath&quot; Set EmpList = doc.selectNodes(&quot;//Employee&quot;)

Set GetEmployees = EmpList

End Function The second For...Each loop in the following sample Visual Basic EXE client code that executes the earlier COM+ component method does not display the Employee names: Dim EmpList As MSXML2.IXMLDOMNodeList Dim obj As Object

Set obj = CreateObject(&quot;&quot;)

Set EmpList = obj.GetEmployees

For Each Emp In EmpList Debug.Print Emp.Text Next

For Each Emp In EmpList Debug.Print Emp.Text Next

The DOMDocument Load Method Ignores Content Expiration
The DOMDocument load method ignores IIS content expiration settings and executes conditional GET requests (with the &quot;If-Modified-Since&quot; header) when you use a URL parameter to access static XML data. Unnecessary network roundtrips occur that you can avoid if the IIS content expiration settings are kept, and if the static XML data is retrieved from the Cache.

XML DSO Control Leaks Memory
You notice a gradual and small memory leak when you repeatedly load or update data in an XML DSO control. You see this problem when you repeatedly (and for a prolonged period of time) load or refresh an HTML page that uses an XML DSO control. The problem occurs when the HTML page does not release the internal data structure that is created and used each time that data is loaded in an XML DSO control instance.

Memory Leak When You Return a Clone of a Global DOMDocument Object from a Visual Basic ActiveX DLL Method
You see a memory or handle leak when you execute a Visual Basic ActiveX DLL method that returns a clone of a global DOMDocument object.

For example, consider a Visual Basic ActiveX DLL with the following code: Option Explicit Public g_objTest As MSXML2.DOMDocument

Public Function Test As MSXML2.DOMDocument If (g_objTest Is Nothing) Then Set g_objTest = New MSXML2.DOMDocument If (g_objTest.Load(App.Path & &quot;\xml\VBLeaks.xml&quot;) = False) Then Call Err.Raise(5, &quot;Test&quot;, g_objTest.parseError.reason) End If   End If    Set Test = g_objTest.cloneNode(True) End Function You may see a memory or handle leak when you execute the Test Visual Basic ActiveX DLL method (demonstrated in the previous code) from a client application.

The ServerXmlHttp Send Method Fails When the URL Contains Unescaped Spaces
When the URL of the target resource contains non-escaped spaces, the ServerXmlHttp object generates the following error message:

URL is invalid

This problem only occurs in MSXML 3.0 SP2. It does not occur in MSXML 3.0 RTM or MSXML 3.0 SP1. The workaround in 3.0 SP2 was to use the %20 character sequence to escape the spaces in the URL. This problem has been fixed in MSXML 3.0 SP3.

