论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Sql Server教程
Tag:注入,存储过程,分页,安全,优化,加密,索引,日志,压缩,base64,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,触发器,socket,安装,sqlserver2000,sqlserver2005,sqlserver2008,视频教程

安装SQLServer2K可能引发一个严重问题

文章类别:Sql Server | 发表日期:2008-10-5 21:36:21

 www.chinai tp ow er.com采集不要钱59wLk

安装SQL Server之后可能www.chinai tp ow er.com采集不要钱59wLk

会导致访问邮箱失败www.chinai tp ow er.com采集不要钱59wLk

Article last modified on 2002-1-21www.chinai tp ow er.com采集不要钱59wLk

--------------------------------------------------------www.chinai tp ow er.com采集不要钱59wLk

The information in this article applies to:www.chinai tp ow er.com采集不要钱59wLk

  • Microsoft Active Directory Service Interfaces, version 2.5
  • Microsoft Data Access Components version 2.6

--------------------------------------------------------www.chinai tp ow er.com采集不要钱59wLk

现象

 www.chinai tp ow er.com采集不要钱59wLk

FrontEndServerExchange 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

www.chinai tp ow er.com采集不要钱59wLk

 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 配置:www.chinai tp ow er.com采集不要钱59wLk

Windows Advanced Server 2000 内部版本号 2195:Service Pack 2www.chinai tp ow er.com采集不要钱59wLk

IE 版本:5.00.3315.1000 更新版本:SP2www.chinai tp ow er.com采集不要钱59wLk

CDOEX.DLL的版本号:6.0.4417.0www.chinai tp ow er.com采集不要钱59wLk

它所处的位置:C:\Program Files\Common Files\Microsoft Shared\CDOwww.chinai tp ow er.com采集不要钱59wLk

 www.chinai tp ow er.com采集不要钱59wLk

原因

首先在FrontEndServer 安装了SQL Server 2000之前,我们可以使用CDOEX的IDataSource.Open打开用户邮箱的:www.chinai tp ow er.com采集不要钱59wLk

_ConnectionPtr pCon = NULL;www.chinai tp ow er.com采集不要钱59wLk

CComPtr <CDO::IFolder>pFldr;www.chinai tp ow er.com采集不要钱59wLk

CComPtr <CDO::IDataSource>pSource;www.chinai tp ow er.com采集不要钱59wLk

hr=pFldr.CoCreateInstance(L"CDO.Folder");www.chinai tp ow er.com采集不要钱59wLk

pFldr->get_DataSource(&pSource);www.chinai tp ow er.com采集不要钱59wLk

hr=pSource->Open(bstrURLInbox,www.chinai tp ow er.com采集不要钱59wLk

                                  (IDispatch*)pCon,www.chinai tp ow er.com采集不要钱59wLk

                                  adModeRead,www.chinai tp ow er.com采集不要钱59wLk

                                           adFailIfNotExists, www.chinai tp ow er.com采集不要钱59wLk

                                           adOpenSource,www.chinai tp ow er.com采集不要钱59wLk

                                           bstrUserDomainAccount,www.chinai tp ow er.com采集不要钱59wLk

                                           bstrUserPwd);www.chinai tp ow er.com采集不要钱59wLk

 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

 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

此时,如果运行下面的代码:www.chinai tp ow er.com采集不要钱59wLk

    Set con = CreateObject("ADODB.Connection")
    con.Provider = "ADsDSOObject"
    con.Open "ADs Provider"
www.chinai tp ow er.com采集不要钱59wLk

最后一行会失败并报错: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

 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

 www.chinai tp ow er.com采集不要钱59wLk

解决这个CDOEX的问题,就是下载并安装了MDAC 2.6 SP1 (2.61.7326.6).exe就可以了。www.chinai tp ow er.com采集不要钱59wLk

 www.chinai tp ow er.com采集不要钱59wLk

小结

在任何机器上安装SQL Server 2000时,都请注意这个问题!www.chinai tp ow er.com采集不要钱59wLk

一旦发现原来可以运行的程序现在爆出一些莫名其妙的错误,请先更新这台机器上的MDAC!打SQL Server 2000 SP1应该也可以,我想。www.chinai tp ow er.com采集不要钱59wLk

 www.chinai tp ow er.com采集不要钱59wLk

参考文献:www.chinai tp ow er.com采集不要钱59wLk

1.   PRB: ADSI 2.5 and MDAC 2.6 Compatibility Issues (Q275917)www.chinai tp ow er.com采集不要钱59wLk

2.   INFO: Determining Which Version of ADSI Is Installed (Q216290)www.chinai tp ow er.com采集不要钱59wLk

 www.chinai tp ow er.com采集不要钱59wLk

视频教程列表
文章教程搜索
 
Sql Server推荐教程
Sql Server热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058