BUG: ADO Record.GetChildren Returns Cached Data for Web Site (305998)
The information in this article applies to:
- Microsoft OLE DB Provider for Internet Publishing 1.5
- Microsoft OLE DB Provider for Internet Publishing 2.0
This article was previously published under Q305998 SYMPTOMS
When you use ActiveX Data Objects (ADO) and the OLEDB Provider for Internet Publishing (MSDAIPP) to get the contents of a Web site that is running FrontPage Server Extensions (FPSE), the Record.GetChildren method may return a recordset that contains cached data from the Web site, and may not contain recent changes that are made by other users who were connected to the same Web folder.
This problem usually occurs after you install Microsoft Office XP or Microsoft FrontPage 2002.
CAUSE
MSDAIPP connects to Web sites that are running FPSE by using the Web Extender Client (WEC) and its associated protocols. Because of a recent change to WEC version 5.0 (which ships with Office XP and FrontPage 2002), clients that do not explicitly request a refresh from the server may be given cached data that was retrieved previously during the same session. This change is an optimization to improve overall performance; however, one result is that ADO clients that use MSDAIPP and WEC can no longer assume that Record.GetChildren returns the most current information on the server.
RESOLUTION
To work around this problem, do either of the following:
- On the server: Change the Web folder that is being accessed to a virtual folder in IIS Manager. MSDAIPP makes a Distributed Authoring and Versioning (DAV) request to the virtual folder to see if any recent changes have been made, and, if so, does a full refresh when GetChildren is called. If the folder is not a virtual folder, the DAV request fails and MSDAIPP allows WEC to determine if a full refresh is needed. WEC 5.0 does not make this check automatically.
-or-
- On the client: Move the code that calls the GetChildren property into an ActiveX EXE. Each time you want to do a full refresh, create a new instance of the ActiveX EXE object, which in turn starts a new WEC session in a new process. This causes WEC to do a full update for that session.
STATUSMicrosoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.
Modification Type: | Major | Last Reviewed: | 12/15/2003 |
---|
Keywords: | kbbug kbpending KB305998 |
---|
|