0

在我将Web 文件夹的软件更新 (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 文件夹客户端示例(用于 MSDAIPP)进行了测试,只是为了从图片中删除 ADO。预编译的 EXE 将在我搞砸的 Vista SP1 和干净的 XP SP3 上运行和工作(在某种程度上),但在干净的 Windows 7 Beta 上根本不能运行(“无法创建 MSDAIPP.DSO”错误)。我说“在某种程度上”是因为出于某种奇怪的原因,Microsoft 演示应用程序显示空白文件和文件夹名称,尽管它可以上传/下载文件和遍历目录就好了。

因此,似乎 ADO 正在寻找一个 MSDAIPP.DSO 不再公开的接口。

C:\Program Files\Common Files\System\Ole DB“损坏”的 MSDAIPP.DLL 版本为 12.0.4518.1014,并且如预期的那样位于其中。这台 Vista SP1 机器还安装了 Office 2003(并且在“更新”之前安装了)。

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

  • 有没有办法支持这个“软件更新”?它安装的不仅仅是 MSDAIPP.DLL,而且正如微软所说,这个“修复”没有卸载。
  • 是否有任何解决方法或后续修复可以修复该修复?
  • MSDAIPP 和 Win7 有什么故事?它存在于 Win7RC1 中吗?或者用户是否需要安装 Office 才能获得它(以前它是 Windows 的一部分,以 Win2K 开头)?

更多信息!

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

IIS 6.0 上的 Webdav 故障排除

注意:Web Extender Client(代号 Rosebud)未随 Windows Vista 提供,并且 Vista 中的 WebDAV 功能仅限于 Web Client 服务(WebDAV 重定向器)的功能。

为利用 Rosebud 而编写的应用程序以前在 Windows XP 机器上正常运行,但在 Windows Vista 中可能会失败。

Web Extender Client 的附加 WebDAV 功能以前在 Windows 2000 和 Windows XP 中作为 Web 文件夹组件 MSDAIPP 公开,并且在 Windows 2000 中通过 Windows 资源管理器和在 Windows XP 中通过添加网上邻居向导进行访问。Web 文件夹尚未包含在 Windows Vista 中,但 Web 文件夹组件仍可作为 Microsoft Office 安装的一部分使用。在遇到与 Web Extender 客户端相关的连接失败的 Windows Vista 客户端上安装 Office 2007 可以解决此问题。

在这一点上,我怀疑通过安装 Office 2003,我将以前的基本 Windows 功能添加到了 Vista。随后安装软件更新(这是面向 Office 2007 的,尽管声称它不会对以前的 Office 安装造成损害)破坏了该功能。我不记得这在任何 Vista 发行说明中。

即使更新可以工作,对于任何希望在 Vista 或 Windows 7 中存在工作 MSDAIPP 的程序来说,这将是一个巨大的头痛。

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

我想知道微软还希望我们如何通过 WebDAV 和 FPSE/WEC 完成编程访问?有没有我们应该知道的新 API,而不是使用 ADO 和 MSDAIPP(又名 Rosebud)?

4

1 回答 1

1

听起来是时候向微软询问这个问题了。


更新:
我会看看能不能找人给你一个更明确的答案。如果您没有收到我或其他人的回复,请在大约一周后通过在此答案中添加另一条评论来“ping”我。

于 2009-07-04T14:54:06.563 回答