安裝
SQL Server
之后可能
會導(dǎo)致訪問
郵箱失敗
Article last modified on 2002-1-21
--------------------------------------------------------
The information in this article applies to:
-
Microsoft Active Directory Service Interfaces, version 2.5
-
Microsoft Data Access Components version 2.6
--------------------------------------------------------
現(xiàn)象
|
|
|
FrontEndServer 是 Exchange 2000服務(wù)器 ; 從某個時候起,在這臺機器上調(diào)用微軟的CDO或者 CDOEX 訪問 Exchange郵箱 發(fā)生了異常!而且ADSI也工作不正常。 從外表上看,沒有任何錯誤的跡象。 重現(xiàn)步驟如下:
?
????????
VB中創(chuàng)建一個應(yīng)用程序;
?
????????
引用
CDOEX.DLL;
?
????????
代碼寫入:
????????
Set oMsg = CreateObject("CDO.Message")
????????
oMsg.DataSource.Open(“http://BackEndServer/public”)
則在第二行得到這樣的錯誤:
Run-time error ‘-2147221164(80040154)’: 無法向注冊表寫入項
?
FrontEndServer
配置:
Windows Advanced Server 2000
內(nèi)部版本號
2195:Service Pack 2
IE
版本:
5.00.3315.1000
更新版本:
SP2
CDOEX.DLL
的版本號:
6.0.4417.0
它所處的位置:
C:\Program Files\Common Files\Microsoft Shared\CDO
|
|
原因
|
|
|
首先在 FrontEndServer 安裝了 SQL Server 2000 之前,我們可以使用CDOEX的 IDataSource.Open 打開用戶郵箱的:
_ConnectionPtr pCon = NULL;
CComPtr <CDO::IFolder>pFldr;
CComPtr <CDO::IDataSource>pSource;
hr=pFldr.CoCreateInstance(L"CDO.Folder");
pFldr->get_DataSource(&pSource);
hr=pSource->Open(bstrURLInbox,
??????
?????????????
????????????
(IDispatch*)pCon,
????????????????????
????????????
adModeRead,
?????????????????????????????????????????
?
adFailIfNotExists,
?????????????????????????????????????????
?
adOpenSource,
?????????????????????????????????????????
?
bstrUserDomainAccount,
????????????????????????????????????????? ? bstrUserPwd);
但是安裝了 SQL Server 之后, MDAC 就被更新到了 version 2.6 ! ! ? 由于 Microsoft 的過錯,早期的一些 MDAC 組件被 MDAC 2.6 刪除或者被覆蓋掉了 !!
而運行 IDataSource.Open ,是需要引用 MDAC 2.5 的這些被刪除了的組件的,所以就會報出“ Class Not Registered ”的錯誤。
此時,如果運行下面的代碼:
??? Set con = CreateObject("ADODB.Connection")
最后一行會失敗并報錯: run-tim error 429 'ActiveX component can't create object' 這種情況被新聞組的人們稱之為 “ADSI toasting ADO”!! ? 這就是一個非常嚴重的問題了。你的要使用到以前的ADO的接口的程序可能都不行了!
所以,安裝了 SQL Server 2000 之后,請一定從下列站點下載最新的 MDAC 安裝包或者補丁。 http://www.microsoft.com/data/download_26sp1.htm
解決這個
CDOEX
的問題,就是下載并安裝了
MDAC 2.6 SP1 (2.61.7326.6).exe
就可以了。
|
|
小結(jié)
|
|
|
在任何機器上安裝
SQL Server 2000
時,都請注意這個問題!
一旦發(fā)現(xiàn)原來可以運行的程序現(xiàn)在爆出一些莫名其妙的錯誤,請先更新這臺機器上的
MDAC
!打
SQL Server 2000 SP1
應(yīng)該也可以,我想。
|
|
參考文獻:
1.
??
《
PRB: ADSI 2.5 and MDAC 2.6 Compatibility Issues (Q275917)
》
2.
??
《
INFO: Determining Which Version of ADSI Is Installed (Q216290)
》
?
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=12660
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

