MSDAIPP在Vista上被更新破坏,在Win7Beta中丢失

时间:2009-07-03 22:13:11

标签: vb6 vbscript ado webdav

我有一些我正在处理的代码,直到我将Software Update for Web Folders (KB907306)安装到Vista SP1中才能正常工作。我正在使用ADO和MSDAIPP.DSO提供程序访问WebDAV和FPSE / WEC服务器。

相同的代码在干净的XP SP3安装中运行良好,并且在此更新之前工作(但我将在干净的Vista安装上重新验证)。

一个简短的测试用例(一个名为IPPTest.wsf的WSH脚本)是:

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

当它失败时我得到例外:

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

更糟糕的是,当我在Win7 Beta上运行相同的脚本时,我甚至无法做到这一点(我还没有安装RC)。我的Win7 Beta根本没有MSDAIPP.DLL。

我还测试了使用VC ++ 6.0中编写的时髦样本Microsoft Office Web Folder Client Sample (for MSDAIPP)来删除图片中的ADO。预编译的EXE将在我的混乱的Vista SP1和干净的XP SP3上运行和工作(在某种程度上),但在干净的Windows 7 Beta上完全没有(“无法创建MSDAIPP.DSO”错误)。我说“在某种程度上”是因为由于一些奇怪的原因,微软演示应用程序显示空白文件和文件夹名称,虽然它可以上传/下载文件和遍历目录就好了。

所以似乎ADO正在寻找MSDAIPP.DSO不再暴露的接口。

“损坏的”MSDAIPP.DLL是版本12.0.4518.1014,位于C:\Program Files\Common Files\System\Ole DB,正如人们所期望的那样。此Vista SP1计算机还安装了Office 2003(并在“更新”之前执行)。

所以(最后)我有三个问题:

  • 有没有办法支持这个“软件 更新“out?它安装超过 只是MSDAIPP.DLL和Microsoft 说这没有卸载 “修复”。
  • 是否有任何解决方法或后续修复程序修复此修复程序?
  • MSDAIPP和Win7的故事是什么? 它存在于Win7RC1中吗?或者会 用户需要安装Office 获得它(以前是它的一部分 Windows以Win2K开头)?

更多信息!

经过漫长(冗长)的搜索,我发现了以下内容:

Webdav on IIS 6.0 Troubleshooting

  

注意:Web Extender客户端(代号   Rosebud)不随Windows一起提供   Vista中的Vista和WebDAV功能   仅限于Web的功能   客户服务(WebDAV重定向器。)

     

为利用Rosebud和。而编写的应用程序   以前在Windows上没有问题   Windows Vista中的XP计算机可能会失败。

     

其他WebDAV功能   Web Extender客户端已经   以前在Windows 2000中公开过   和Windows XP作为Web文件夹   组件,MSDAIPP,并被访问   在Windows 2000中通过Windows资源管理器   并在Windows XP中通过添加网络   放置向导。网络文件夹已经   未包含在Windows Vista中,   但Web文件夹组件是   仍然作为Microsoft的一部分提供   办公室安装。安装   Windows Vista客户端上的Office 2007   体验Web Extender   客户端相关的连接故障   解决了这个问题。

此时我怀疑通过安装Office 2003,我添加了以前对Vista的基本Windows功能。随后安装软件更新(面向Office 2007,虽然它声称对以前的Office安装没有任何损害)打破功能。我不记得在任何Vista发行说明中都存在这种情况。

即使可以使更新生效,对于任何期望在Vista或Windows 7中存在有效MSDAIPP的程序来说,这将是一个巨大的麻烦。

看起来微软刚刚通过打破MDAC / DAC打破了VB6的另一个轮辐。这可能是一个过早的评估,我正在等待任何其他建议或信息。

我想知道Microsoft希望我们如何通过WebDAV和FPSE / WEC完成程序化访问?我们应该知道一个新的API,而不是使用ADO和MSDAIPP(a.k.a. Rosebud)吗?

1 个答案:

答案 0 :(得分:1)

现在是时候向微软询问此事了。


<强>更新
我会看是否能找到一个能让你得到更明确答案的人。如果您没有收到我或其他人的回复,请在大约一周内通过在此答案中添加其他评论来“ping”我。