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



The information in this article applies to:

  • Microsoft XML 3.0 SP3

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).

MORE INFORMATION

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 "<Employees><Employee>Jack</Employee><Employee>John</Employee></Employees>"

   Dim EmpList As MSXML2.IXMLDOMNodeList
   

   doc.setProperty "SelectionLanguage", "XPath"
   Set EmpList = doc.selectNodes("//Employee")

   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("<PROGID OF COM+ COMPONENT>")

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 "If-Modified-Since" 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 & "\xml\VBLeaks.xml") = False) Then
            Call Err.Raise(5, "Test", 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.

REFERENCES

328995 List of Issues Fixed in MSXML 3.0 SP3 (Part 1)


Modification Type:MinorLast Reviewed:11/18/2005
Keywords:kbinfo KB328998