我正在编写一些代码,在安装之前运行得很好 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。

我还使用时髦的示例进行了测试 Microsoft Office Web 文件夹客户端示例(适用于 MSDAIPP) 用VC++ 6.0编写只是为了从图片中删除ADO。预编译的 EXE 可以在我混乱的 Vista SP1 和干净的 XP SP3 上运行并工作(在某种程度上),但在干净的 Windows 7 Beta 上根本不能运行(“无法创建 MSDAIPP.DSO”错误)。我说“在某种程度上”是因为由于某种奇怪的原因,Microsoft 演示应用程序显示空白文件和文件夹名称,尽管它可以很好地上传/下载文件和遍历目录。

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

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

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

  • 有没有办法备份此“软件更新”?它不仅安装了msdaipp.dll,而且正如微软所说,该“修复程序”没有卸载。
  • 是否有任何解决方法或后续修复可以修复此问题?
  • MSDAIPP 和 Win7 的故事是什么?Win7RC1 中有这个功能吗?还是用户需要安装办公室来获得它(以前是Windows以Win2k开头的一部分)?

更多信息!

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

IIS 6.0 上的 Webdav 故障排除

笔记:Web Extender Client(代号Rossbud)未使用Windows Vista发货,并且Vista中的WebDAV功能仅限于Web Client Service(WebDav Redireter)的功能。

为了利用玫瑰花蕾而编写的应用程序和以前在Windows XP机器上没有问题的应用程序可能会在Windows Vista中失败。

Web Extender客户端的其他WebDAV功能先前已在Windows 2000和Windows XP中作为Web文件夹组件(MSDAIPP)公开,并通过Windows 2000通过Windows Explorer和Windows XP访问了通过添加网络位置向导。Windows Vista中没有包含Web文件夹,但是作为Microsoft Office安装的一部分,Web文件夹组件仍然可用。在Windows Vista客户端上安装Office 2007,体验Web扩展器client依赖的连接故障可以解决此问题。

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

即使更新可以正常工作,对于任何希望在 Vista 或 Windows 7 中出现有效的 MSDAIPP 的程序来说,这也将是一个巨大的难题。

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

我想知道 Microsoft 还希望我们如何通过 WebDAV 和 FPSE/WEC 实现编程访问?是否有我们应该了解的新 API,而不是将 ADO 与 MSDAIPP(又名:MSDAIPP)结合使用?玫瑰花蕾)?

有帮助吗?

解决方案

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


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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top