MSDAIPP сломан в Vista из-за обновления, отсутствует в Win7Beta

У меня есть код, над которым я работаю, который работал нормально, пока я не установил Обновление программного обеспечения для веб-папок (KB907306) в Vista SP1. Я использую ADO с поставщиком MSDAIPP.DSO для доступа к серверам WebDAV и FPSE / WEC.

Тот же код отлично работает при чистой установке XP SP3 и работал до этого обновления (но я еще раз проверю при чистой установке Vista).

Краткий тестовый пример (сценарий WSH с именем IPPTest.wsf):

<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 вообще нет MSDAIPP.DLL.

Я также тестировал забавный образец Образец клиента веб-папки Microsoft Office (для 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, и, как заявляет Microsoft, для этого «исправления» не требуется удаления.
  • Есть ли обходной путь или последующее исправление, которое исправляет исправление?
  • Что за история с MSDAIPP и Win7? Он присутствует в Win7RC1? Или пользователям потребуется установить Office, чтобы получить его (ранее он был частью Windows, начиная с Windows 2000)?

Дополнительная информация!

После долгих поисков я нашел следующее:

Webdav на Устранение неполадок IIS 6.0

Примечание. Клиент Web Extender (кодовое имя Rosebud) не поставляется с Windows Vista, а функциональность WebDAV в Vista ограничена возможностями службы веб-клиента (перенаправитель WebDAV).

Приложения, написанные для использования Rosebud и ранее без проблем работавшие на компьютерах с Windows XP, могут не работать в Windows Vista.

Дополнительные функции WebDAV клиента Web Extender Client ранее были представлены в Windows 2000 и Windows XP как компонент веб-папок, MSDAIPP, и доступ к ним в Windows 2000 через проводник Windows и в Windows XP через мастер добавления сетевого окружения. Веб-папки не были включены в Windows Vista, но компонент веб-папок по-прежнему доступен как часть установки Microsoft Office. Установка Office 2007 на клиенте Windows Vista, в котором произошел сбой подключения, зависящий от клиента Web Extender, решает проблему.

На данный момент я подозреваю, что, установив Office 2003, я добавил в Vista то, что раньше было фундаментальной возможностью Windows. Последующая установка обновления программного обеспечения (ориентированного на Office 2007, хотя было заявлено, что оно не причиняет вреда предыдущим установкам Office) нарушила функциональность. Я не припомню, чтобы это было в каких-либо примечаниях к выпуску Vista.

Даже если обновление можно заставить работать, это будет огромной головной болью для любых программ, которые ожидают, что работающий MSDAIPP будет присутствовать в Vista или Windows 7.

Похоже, что Microsoft просто сломала еще одну спицу от колеса VB6 этим, сломав MDAC / DAC. Это может быть преждевременная оценка, и я жду любых других предложений или информации.

Интересно, как еще Microsoft ожидает от нас обеспечения программного доступа через WebDAV и FPSE / WEC? Есть ли новый API, о котором мы должны знать вместо использования ADO с MSDAIPP (он же Rosebud)?


person Bob77    schedule 03.07.2009    source источник
comment
Загрузил чистую виртуальную машину Vista SP1 и протестировал ее. Нет ошибки провайдера, как в Win7 Beta. Я полагаю, это ответ на вопрос о поддержке из коробки. Поэтому, вероятно, возникает вопрос, как исправить версию обновления программного обеспечения Office 2007 или чем заменить MSDAIP.   -  person Bob77    schedule 04.07.2009
comment
Еще один лакомый кусочек: использование версии MSDAIPP с обновлением программного обеспечения от 2008 года действительно работает в ограниченной степени. Вы можете использовать ADO для получения списков каталогов и даже для создания каталогов, удаления файлов и каталогов и создания (пустых) файлов. То, что вы, по-видимому, не можете сделать, так это открыть поток для файла.   -  person Bob77    schedule 04.07.2009
comment
Я бы хотел, чтобы больше вопросов было таким подробным, как этот. Браво. К сожалению, это выходит за рамки моего круга знаний.   -  person rpetrich    schedule 04.07.2009
comment
Тем не менее, спасибо за чтение. Я обнаружил, что вы можете извлечь RosebudMUI.msi из .EXE обновления и даже щелкнуть правой кнопкой мыши и выбрать «Удалить». К сожалению, по крайней мере в Vista (защита системных файлов?) MSDAIPP версии 12 остается на своем месте. Для его удаления может потребоваться ручная отмена регистрации и удаление компонентов. Даже в этом случае у меня нет альтернативы (может быть, переустановить офис 2003?). К сожалению, я надеялся, что это будет надежным системным компонентом, который могут использовать мои программы. Это или найдите распространяемый пакет для версии 11 или более ранней.   -  person Bob77    schedule 04.07.2009
comment
Да, и версия MSDAIPP.DSO KB907306 может использоваться вырожденным способом для открытия потока в исходную строку формы URL = ..., но любые предоставленные учетные данные пользователя игнорируются (диалоговое окно всплывает запрос user / pw и не может быть подавлен). stm.Open URL = & WEBROOT & / & TEXTFILE, adModeRead, adOpenStreamUnspecified, USER, PW   -  person Bob77    schedule 04.07.2009
comment
Прокомментируйте здесь, чтобы не подтолкнуть Джона Сондерса ниже в это время: исправление KB956790 не имело никакого значения.   -  person Bob77    schedule 04.07.2009


Ответы (1)


Похоже, пора спросить об этом Microsoft.


ОБНОВЛЕНИЕ:
Я посмотрю, смогу ли я найти кого-нибудь, кто даст вам более точный ответ. Если вы не получите ответа от меня или кого-то еще, «пингуйте» меня, добавив еще один комментарий к этому ответу, примерно через неделю.

person John Saunders    schedule 04.07.2009
comment
Есть идеи, с чего начать? Я не видел ничего на странице загрузки или в статье базы знаний о запросе поддержки при проблемах с этим обновлением. Может быть, можно было бы растянуть точку, поскольку они утверждали, что это касается безопасности и получения бесплатного отчета об инциденте? Опять же, это не обязательный патч безопасности или что-то в этом роде. Я действительно вижу, что это обновление было выпущено дважды, хотя я не знаю, что было не так с первым, и попытка добраться до него перенаправляет на загрузку KB907306. Хм. - person Bob77; 04.07.2009
comment
Я начну с запроса исправления у KB956790 и его тестирования. Хотя описание не имеет прямого отношения к моему симптому, оно предоставляет более новую версию MSDAIPP.DLL, и, прежде чем распространять ее дальше, мне, вероятно, следует ее применить. - person Bob77; 04.07.2009
comment
Я задавался вопросом, не повезло ли вам найти решение или обходной путь для этого? Я ищу сторонние альтернативы, но пока не нахожу ничего элегантного. Большинство из них в той или иной степени обрабатывают WebDAV, очень немногие (нет?) Обрабатывают FPSE / WEC или как там это сейчас называется в SharePoint. - person Bob77; 12.07.2009
comment
Нет, пока ничего. Я снова просмотрел свои источники. Напишите мне через четыре дня, если ничего не услышите. - person John Saunders; 12.07.2009
comment
Похоже, колодец иссяк. Я не получаю помощи с этого направления. Прости. - person John Saunders; 17.07.2009
comment
Нет проблем, я ценю вашу попытку. Мне придется поразмыслить и посмотреть, что еще я могу найти в качестве альтернативы. Спасибо! - person Bob77; 21.07.2009