MSDAIPP は Vista ではアップデートにより壊れ、Win7Beta では見つからない
質問
インストールするまでは問題なく動作していたコードがいくつかあります Web フォルダーのソフトウェア アップデート (KB907306) Vista SP1 にインストールします。WebDAV サーバーと FPSE/WEC サーバーにアクセスするために、ADO と MSDAIPP.DSO プロバイダーを使用しています。
同じコードは 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 ベータ版で同じスクリプトを実行しても、そこまで到達することさえできません (RC をまだインストールしていません)。私の Win7 Beta には MSDAIPP.DLL がまったくありません。
funky サンプルを使用してテストもしました Microsoft Office Web フォルダー クライアント サンプル (MSDAIPP 用) 画像から ADO を削除するためだけに VC++ 6.0 で書かれています。プリコンパイルされた 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 もインストールされています (「更新」前からインストールされていました)。
そこで、(最後に)3 つの質問があります。
- この「ソフトウェアアップデート」を裏付ける方法はありますか?Msdaipp.dllだけ以上のものをインストールし、Microsoftがこの「修正」のアンインストールはないと述べています。
- この問題を解決する回避策やその後の修正はありますか?
- MSDAIPP と Win7 の話は何ですか?Win7RC1には存在するのでしょうか?または、ユーザーはそれを取得するためにオフィスをインストールする必要があります(以前はWin2Kで始まるWindowsの一部でした)?
詳しくは!
長い(長い)検索の結果、次のことがわかりました。
IIS 6.0 上の Webdav のトラブルシューティング
注記:Web Extenderクライアント(コードネームRosebud)はWindows Vistaに出荷されておらず、VistaのWebDav機能はWebクライアントサービス(WebDAVリダイレクター)の機能に限定されています。
Rosebudを活用するために書かれたアプリケーションで、Windows XPマシンで問題なく作業していた場合、Windows Vistaで失敗する可能性があります。
Web Extenderクライアントの追加のWebDAV機能は、Windows 2000およびWindows XPでWebフォルダーコンポーネントのMSDAIPPとして以前に公開されており、Windows 2000を介してWindows Explorerを介してAdd Network Place Wizardを介してWindows XPにアクセスされていました。WebフォルダーはWindows Vistaには含まれていませんが、Webフォルダーコンポーネントは、Microsoft Officeのインストールの一部として引き続き利用できます。Webエクステンダー依存の接続障害を経験しているWindows VistaクライアントにOffice 2007をインストールすると、問題が解決します。
この時点で、私は Office 2003 をインストールすることによって、以前は Windows の基本的な機能であった機能を Vista に追加したのではないかと考えています。その後、ソフトウェア アップデートをインストールします (これは Office 2007 向けですが、以前の Office インストールには害を及ぼさないと主張されています)。 壊れた 機能性。これが Vista のリリース ノートに記載されていた記憶はありません。
たとえアップデートが機能するようになったとしても、これは、Vista または Windows 7 で MSDAIPP が機能することを期待しているプログラムにとっては大きな頭痛の種となるでしょう。
Microsoft は、MDAC/DAC を壊すことで、VB6 の車輪から別のスポークを壊したようです。それは時期尚早の評価かもしれません。他の提案や情報を待っています。
Microsoft は、WebDAV および FPSE/WEC を介したプログラムによるアクセスを他にどのように実現することを期待しているのでしょうか?MSDAIPP (別名: MSDAIPP) で ADO を使用する代わりに知っておくべき新しい API はありますか?バラのつぼみ)?
解決
この件については Microsoft に問い合わせる時期が来たようです。
アップデート:
より明確な答えをくれる人を見つけられるかどうか考えてみます。私または他の人から返信がない場合は、約 1 週間以内にこの回答に別のコメントを追加して私に「ping」してください。