MSDAIPP cassé sur Vista par jour, manquant dans Win7Beta
Question
J'ai un code Je travaille sur ce fonctionnait très bien jusqu'à ce que j'ai installé Mise à jour logicielle pour les dossiers Web (KB907306) dans Vista SP1. J'utilise ADO avec le fournisseur MSDAIPP.dso pour acess aux serveurs WebDAV et FPSE / WEC.
Le même code fonctionne très bien dans un environnement propre XP SP3 installer et travaillé avant cette mise à jour (mais je vais revérifier sur une installation propre Vista).
Un court cas de test (un script WSH nommé IPPTest.wsf) est:
<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>
Quand je tombe en panne obtenir l'exception:
---------------------------
Windows Script Host
---------------------------
Script: C:\Users\xxxxx\Desktop\IPPTest.wsf
Line: 19
Char: 8
Error: No such interface supported
Code: 80004002
Source: (null)
Pire encore, je ne peux pas même jusque-là quand je lance le même script sur Win7 Beta (je ne l'ai pas encore installé la RC). Mon Win7 Beta n'a pas MSDAIPP.dll du tout.
J'ai également testé à l'aide de l'échantillon froussard Microsoft office Web Folder Sample client (pour MSDAIPP) écrit en VC ++ 6.0 juste pour supprimer ADO de l'image. Le précompilé EXE fonctionnera et travailler (dans une certaine mesure) sur mon foiré Vista SP1 et sur le propre XP SP3, mais pas du tout sur une version bêta de Windows 7 propre (erreur « ne peut pas créer MSDAIPP.dso »). Je dis « dans une certaine mesure » parce que, pour une raison étrange, les applications de démonstration Microsoft affiche fichier vide et les dossiers, mais il peut télécharger / télécharger des fichiers et des répertoires traversent très bien.
Il semble donc que ADO est à la recherche d'une interface qui ne l'expose plus MSDAIPP.dso.
Le « cassé » MSDAIPP.dll est une version 12.0.4518.1014 et est situé dans C:\Program Files\Common Files\System\Ole DB
comme on pouvait s'y attendre. Cette machine Vista SP1 a également installé Office 2003 (et a fait avant la "mise à jour").
(enfin) J'ai trois questions:
- Est-il possible de sauvegarder ce « logiciel Mise à jour » out? Il installe plus juste le MSDAIPP.dll, et que Microsoft dit qu'il n'y a pas de désinstallation pour ce "Fixer".
- Y at-il solution de contournement ou un correctif ultérieure qui fixe le correctif?
- Quelle est l'histoire sur MSDAIPP et Win7? Est-il présent dans Win7RC1? ou bien les utilisateurs doivent installer Office pour obtenir (elle était auparavant une partie de Windows commençant par Win2K)?
Plus d'informations!
J'ai trouvé, après une longue recherche (longue):
Note: Le client Web Extender (nom de code Rosebud) n'est pas livré avec Windows Vista et la fonctionnalité WebDAV dans Vista est limitée aux capacités du Web Service à la clientèle (le redirecteur WebDAV.)
Les applications écrites pour tirer parti Rosebud et travaillant auparavant sans problème sur Windows machines XP peuvent échouer dans Windows Vista.
La fonctionnalité WebDAV supplémentaire le client Web Extender avait été exposée précédemment dans Windows 2000 et Windows XP comme les dossiers Web composant, MSDAIPP, et on a accédé dans Windows 2000 via l'Explorateur Windows et dans Windows XP via le réseau Ajouter Assistant Ajout. Dossiers Web ont été pas été inclus dans Windows Vista, mais les dossiers composant Web est toujours disponible dans le cadre d'un Microsoft installation de Microsoft Office. pose Office 2007 sur un client Windows Vista l'expérience Web Extender l'échec de la connectivité dépendant du client résout le problème.
À ce stade, je soupçonne que par l'installation d'Office 2003, j'ai ajouté ce qui était autrefois une capacité de Windows Vista fondamentale. Par la suite l'installation de la mise à jour du logiciel (qui est Office 2007 orienté, mais il a été prétendu ne pas nuire au Bureau précédent installe) cassé la fonctionnalité. Je ne me souviens pas être dans un Vinotes de version sta.
Même si la mise à jour peut être fait pour travailler, ce sera un énorme casse-tête pour tous les programmes qui attendent un MSDAIPP de travail pour être présent dans Vista ou Windows 7.
On dirait que Microsoft vient de rompre un autre rayon de la roue de VB6 avec celui-ci en brisant MDAC / DAC. Cela peut être une évaluation prématurée, et je suis en attente d'autres suggestions ou informations.
Je me demande comment les autres Microsoft attend que nous accomplissions l'accès programmatique via WebDAV et FPSE / WEC? Y at-il une nouvelle API, nous devrions connaître au lieu d'utiliser ADO avec MSDAIPP (Rosebud a.k.a.)?
La solution
On dirait qu'il est temps de demander à Microsoft à ce sujet.
Mise à jour: Je vais voir si je peux trouver quelqu'un pour vous obtenir une réponse plus définitive. Si vous ne l'entendez pas en arrière de moi ou quelqu'un d'autre, me « ping » en ajoutant un autre commentaire à cette réponse, dans une semaine.