views:

331

answers:

1

I have some code I am working on that worked just fine until I installed Software Update for Web Folders (KB907306) into Vista SP1. I'm using ADO with the MSDAIPP.DSO provider for acess to WebDAV and FPSE/WEC servers.

The same code works fine in a clean XP SP3 install, and worked before this update (but I will re-verify on a clean Vista install).

A short test case (a WSH script named IPPTest.wsf) is:

<job>
  <reference object="ADODB.Connection"/>
  <object id="cnIPP" progId="ADODB.Connection"/>
  <object id="rec" progId="ADODB.Record"/>
  <object id="stm" progId="ADODB.Stream"/>
  <script language="VBScript">
  Option Explicit
  Const WEBROOT = "https://your.DAC-or-WEC.server"
  Const USER = "youruser"
  Const PW = "yourpw"
  Const TEXTFILE = "yourtextfile.txt"

  cnIPP.Open "Provider=MSDAIPP.DSO;Prompt=NoPrompt;" _
           & "Connect Timeout=10;" _
           & "Data Source=" & WEBROOT, _
             USER, PW, adConnectUnspecified

  rec.Open TEXTFILE, cnIPP, adModeRead
  stm.Open rec, , adOpenStreamFromRecord
  stm.Type = adTypeText
  stm.Charset = "ascii"
  MsgBox stm.ReadText(adReadLine)

  stm.Close
  rec.Close
  cnIPP.Close
  </script>
</job>

When it fails I get the exception:

---------------------------
Windows Script Host
---------------------------
Script: C:\Users\xxxxx\Desktop\IPPTest.wsf
Line:   19
Char:   8
Error:  No such interface supported 
Code:   80004002
Source:     (null)

Worse yet, I cannot even get that far when I run the same script on Win7 Beta (I haven't installed the RC yet). My Win7 Beta does not have MSDAIPP.DLL at all.

I've also tested using the funky sample Microsoft Office Web Folder Client Sample (for MSDAIPP) written in VC++ 6.0 just to remove ADO from the picture. The precompiled EXE will run and work (to some extent) on my messed up Vista SP1, and on the clean XP SP3, but not at all on a clean Windows 7 Beta ("can't create MSDAIPP.DSO" error). I say "to some extent" because for some odd reason the Microsoft demo app displays blank file and folder names, though it can upload/download files and traverse directories just fine.

So it seems that ADO is looking for an interface that the MSDAIPP.DSO no longer exposes.

The "broken" MSDAIPP.DLL is version 12.0.4518.1014 and is located in C:\Program Files\Common Files\System\Ole DB as one would expect. This Vista SP1 machine also has Office 2003 installed (and did prior to the "update").

So (finally) I have three questions:

  • Is there a way to back this "Software Update" out? It installs more than just the MSDAIPP.DLL, and as Microsoft says there is no uninstall for this "fix."
  • Is there any workaround or subsequent fix that fixes the fix?
  • What's the story on MSDAIPP and Win7? Is it present in Win7RC1? Or will users need to install Office to obtain it (previously it was part of Windows beginning with Win2K)?


More information!

I found the following after a lengthy (lengthy) search:

Webdav on IIS 6.0 Troubleshooting

Note: The Web Extender Client (codename Rosebud) is not shipped with Windows Vista, and WebDAV functionality in Vista is limited to the capabilities of the Web Client service (the WebDAV redirector.)

Applications written to leverage Rosebud and previously working without issue on Windows XP machines may fail in Windows Vista.

The additional WebDAV functionality of the Web Extender Client had been exposed previously in Windows 2000 and Windows XP as the Web Folders component, MSDAIPP, and was accessed in Windows 2000 via Windows Explorer and in Windows XP via the Add Network Place Wizard. Web Folders have been not been included in Windows Vista, but the Web Folders component is still available as part of a Microsoft Office installation. Installing Office 2007 on a Windows Vista client experiencing Web Extender Client-dependent connectivity failure resolves the issue.

At this point I suspect that by installing Office 2003 I added what was formerly a fundamental Windows capability to Vista. Subsequently installing the Software Update (which is Office 2007 oriented, though it was claimed to do no harm to previous Office installs) broke the functionality. I do not recall this being in any Vista release notes.

Even if the Update can be made to work, this will be a huge headache for any programs that expect a working MSDAIPP to be present in Vista or Windows 7.

It looks like Microsoft just broke another spoke off VB6's wheel with this one by breaking MDAC/DAC. That may be a premature assessment, and I'm awaiting any other suggestions or information.

I wonder how else Microsoft expects us to accomplish programmatic access via WebDAV and FPSE/WEC? Is there a new API we should know about instead of using ADO with MSDAIPP (a.k.a. Rosebud)?

+1  A: 

It sounds like it's time to ask Microsoft about this.


UPDATE:
I'll see if I can find someone to get you a more definitive answer. If you don't hear back from me or someone else, "ping" me by adding another comment to this answer, in about a week.

John Saunders
Any idea where to begin? I didn't see anything on the download page or in the KB article about requesting support for problems with this Update. Maybe one could stretch a point since they claimed it addresses "security" and get a free incident report? Then again it isn't a mandatory security patch or something. I do see that this Update was released twice, though no idea what was wrong with the 1st one and trying to get to it redirects to the KB907306 download. Hmm.
Bob Riemersma
I'll start by requesting the hotfix from KB956790 and testing it. While the description doesn't relate to my symptom directly it does provide a newer version of MSDAIPP.DLL and before escalating this further I should probably apply it.
Bob Riemersma
I wondered if you have had any luck finding a solution or workaround for this? I'm looking at 3rd party alternatives but so far I'm not finding anything elegant. Most handle WebDAV to one degree or another, very few (none?) handle FPSE/WEC or whatever it is called in SharePoint now.
Bob Riemersma
No, nothing yet. I've pinged my sources again. Ping me back in four days if you hear nothing.
John Saunders
Just wondering if you had heard anything new?
Bob Riemersma
It seems that well has run dry. I'm getting no help from that direction. Sorry.
John Saunders
No problem, I appreciate you trying. I'll have to cast about and see what else I can find in the way of an alternative. Thanks!
Bob Riemersma