安装SQL Server之后可能
会导致访问邮箱失败
Article last modified on 2002-1-21
--------------------------------------------------------
The information in this article applies to:
--------------------------------------------------------
现象 |
|
FrontEndServer是Exchange 2000服务器;www.chinai tp ow er.com采集不要钱59wLk 从某个时候起,在这台机器上调用微软的CDO或者CDOEX访问Exchange邮箱发生了异常!而且ADSI也工作不正常。www.chinai tp ow er.com采集不要钱59wLk 从外表上看,没有任何错误的迹象。www.chinai tp ow er.com采集不要钱59wLk 重现步骤如下:www.chinai tp ow er.com采集不要钱59wLk Ø VB中创建一个应用程序; Ø 引用CDOEX.DLL; Ø 代码写入: Set oMsg = CreateObject("CDO.Message") oMsg.DataSource.Open(“http://BackEndServer/public”)
则在第二行得到这样的错误:www.chinai tp ow er.com采集不要钱59wLk Run-time error ‘-2147221164(80040154)’:www.chinai tp ow er.com采集不要钱59wLk 无法向注册表写入项www.chinai tp ow er.com采集不要钱59wLk www.chinai tp ow er.com采集不要钱59wLk www.chinai tp ow er.com采集不要钱59wLk FrontEndServer 配置: Windows Advanced Server 2000 内部版本号 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打开用户邮箱的:www.chinai tp ow er.com采集不要钱59wLk _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);www.chinai tp ow er.com采集不要钱59wLk 但是安装了SQL Server之后,MDAC就被更新到了version 2.6!!www.chinai tp ow er.com采集不要钱59wLk www.chinai tp ow er.com采集不要钱59wLk 由于Microsoft的过错,早期的一些MDAC组件被MDAC 2.6删除或者被覆盖掉了!!www.chinai tp ow er.com采集不要钱59wLk 而运行IDataSource.Open,是需要引用MDAC 2.5的这些被删除了的组件的,所以就会报出“Class Not Registered”的错误。www.chinai tp ow er.com采集不要钱59wLk 此时,如果运行下面的代码:www.chinai tp ow er.com采集不要钱59wLk Set con = CreateObject("ADODB.Connection") 最后一行会失败并报错:run-tim error 429 'ActiveX component can't create object'www.chinai tp ow er.com采集不要钱59wLk 这种情况被新闻组的人们称之为“ADSI toasting ADO”!!www.chinai tp ow er.com采集不要钱59wLk www.chinai tp ow er.com采集不要钱59wLk 这就是一个非常严重的问题了。你的要使用到以前的ADO的接口的程序可能都不行了!www.chinai tp ow er.com采集不要钱59wLk 所以,安装了SQL Server 2000之后,请一定从下列站点下载最新的MDAC安装包或者补丁。www.chinai tp ow er.com采集不要钱59wLk http://www.microsoft.com/data/download_26sp1.htmwww.chinai tp ow er.com采集不要钱59wLk 解决这个CDOEX的问题,就是下载并安装了MDAC 2.6 SP1 (2.61.7326.6).exe就可以了。 |
小结 | |
在任何机器上安装SQL Server 2000时,都请注意这个问题! 一旦发现原来可以运行的程序现在爆出一些莫名其妙的错误,请先更新这台机器上的MDAC!打SQL Server 2000 SP1应该也可以,我想。 |
参考文献:
1. 《PRB: ADSI 2.5 and MDAC 2.6 Compatibility Issues (Q275917)》
2. 《INFO: Determining Which Version of ADSI Is Installed (Q216290)》
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |