`

创建ActiveXObject ADODB.Stream时报错:automation服务器不能创建对象

    博客分类:
  • JS
阅读更多

先说句废话:通过解决“automation服务器不能创建”这个问题,总算是见识到了什么叫做“网上文章一大抄,看你会抄不会抄”了,各种解决方案,但都大同小异,且能用的很少,且大部分都是抄抄抄的,有真知灼见的很少。个人为这个问题也折腾了一整天,认为网上比较有用的方法主要有以下三种:

第一种、 new ActiveXObject("ADODB.Stream")中的ADODB写错了,写成了别的譬如abodb,abodo什么的,这几个字有一个写错的都会报automation服务器不能创建的错误;

 

第二种IE浏览器中安全级里关于ActiveX控件的设置,主要设置可以参考这里,这几个设置是必须要的,很重要;

 

第三种、修改注册码,将HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{00000566-0000-0010-8000-00AA006D2EA4}中的Compatibility Flags的值由400改成0,Compatibility Flags的值为400时说明ADODB.Stream是被禁用的,设置为0以后就启用了,也就可以创建爱你了。对了,在修改的时候,注意要在选择“十六进制”的情况下设置为0而不是十进制

 

另外,我还发现一个怪事:使用new ActiveXObject("ADODB.Stream")的浏览器的位数与操作系统的位数有关,当操作系统是32位时使用32位的IE可以成功创建ActiveXObject,64的时候也是一样。若是本身是64位的操作系统在32为的IE中创建对象一定会报automation服务器不能创建对象。我在我64位操作系统的机器上架设了一个web项目,创建了ActiveXObject("ADODB.Stream"),使用配置了以上后两部操作的32位的IE8访问,死活报 automation服务器不能创建对象的问题,换到32位的操作系统中,也配置了以上后两部操作的IE6中却能够成功创建,换成别的32位操作系统的IE8浏览器也没有问题。很明显这与浏览器没有关系,于是我使用64位的IE8浏览器访问64位操作系统中的项目,也能创建成功。

 

所以最后的结论就是:确保第一种情况没有为的情况下,配置第二部第三步,一般都这里就没有问题了,若还有问题,就查查电脑的操作系统是不是64位的,因为默认的IE是32位的,32位与64位不一致所以不能创建,可以通过C:\Program Files\Internet Explorer\iexplore.exe打开64位的IE,然后重新访问,应该就没有问题了。

 

PS:以上结论,只是在IE6和IE8两大版本中测试,在IE11中无论如何创建不成功,以上说的几种方法不行,网上搜到的其他方法如

1、安装msxml

2、执行regsvr32 jscript.dll、regsvr32 vbscript.dll、regsvr32 scrrun.dl、regsvr32 "C:\Program Files\Common Files\System\ado\msado15.dll"、regsvr32 "C:\Program Files (x86)\Common Files\System\ado\msadomd.dll"

等命令也不能成功,目前个人还没有找到解决的办法,有能解决的,麻烦留个言告知一声,不胜感激。

 

PPS:默认32位的IE浏览器的路径为:C:\Program Files (x86)\Internet Explorer\iexplore.exe

 

PPPS:执行regsvr32 jscript.dll若是报“已加载但是调用失败”的错误,一般有两种方法可以解决:

a、下载一个msxml然后安装,安装完成之后再执行,一般就只有一个regsvr32 jscript.dll执行失败了;

b、以“超级管理员”角色登录,使用命令提示行,执行脚本:regsvr32 %winDir%\SysWOW64\jscript.dll基本上也能执行成功,当然此后再在“运行”当中执行regsvr32 jscript.dll也是没有问题的。若是切换成普通角色,可能还是会有问题。

分享到:
评论

相关推荐

    ActiveX部件不能创建对象:dm.dmsoft代码:800A01AD

    ActiveX部件不能创建对象是许多IT专业人士在使用脚本语言调用ActiveX插件时可能遇到的问题。ActiveX是一种由微软公司提出的技术,用于在使用Internet Explorer浏览器或类似环境下,通过网页或其他应用软件与本地...

    jscript读写二进制文件的方法

    1. TestWrite函数:它创建了一个ADODB.Stream对象,并将其设置为文本模式。它通过一个循环写入了从0到255的字符,并将其保存到指定路径的文件中。 2. BinaryFile类:这个类封装了读取和写入二进制文件的方法。它...

    Javascript中最常用的55个经典技巧

    12. 窗口控制:通过ActiveXObject,可以实现对窗口的操作,如最小化(`Minimize`)、最大化(`Maximize`)和关闭(`Close`)。 以上只是JavaScript经典技巧的一小部分,实际上,JavaScript还包括DOM操作、AJAX异步请求、...

    XMLHttpRequest

    `XMLHttpRequest`是一种在浏览器端执行异步请求的技术,它允许网页在不重新加载整个页面的情况下与服务器交换数据并更新部分页面内容。这使得Web应用程序能够提供更加流畅、响应更快的用户体验。 #### 二、DWR ...

    JavaScript中操作Mysql数据库实例

    //创建数据库连接对象 var conn = new ActiveXObject("ADODB.Connection"); //创建数据集对象 var rs = new ActiveXObject("ADODB.Recordset"); try{ //数据库连接串,具体配置请参考:...

    js操作access分页

    创建`new ActiveXObject("ADODB.Connection")`和`new ActiveXObject("ADODB.Recordset")`,建立连接并打开记录集,执行SQL查询。 2. 数据库连接字符串:需要一个正确的连接字符串来连接到Access数据库。例如:...

    使用JavaScript中的ActiveXObject填充并设置Excel格式

    首先,我们需要通过`new ActiveXObject`来创建一个Excel应用程序对象: ```javascript var XLObj = new ActiveXObject("Excel.Application"); ``` 这里,`XLObj`即为Excel应用程序的对象。接下来,我们可以通过这...

    javascript 实用小例

    1. 创建Excel对象:`var excel = new ActiveXObject("Excel.Application");` 2. 打开工作簿:`var workbook = excel.Workbooks.Open("path_to_file.xlsx");` 3. 选择工作表:`var worksheet = workbook.Sheets[...

    Ajax和XMLHttp原理

    这个对象允许JavaScript在后台与服务器进行通信,实现了页面的异步更新。 XMLHttpRequest对象具有多个属性,其中最重要的几个包括: 1. `onreadystatechange`:每当对象的`readyState`属性发生变化时,都会触发这...

    易语言源码利用COM对象取网页源码.rar

    易语言是一种专为中国人设计的编程语言,它以简明的中文语法,降低了编程的门槛,使得更多非计算机专业的人员也能参与到程序开发中。在"易语言源码利用COM对象取网页源码.rar"这个压缩包中,包含了一个使用易语言...

    js连接数据库!入门代码

    1. **ActiveXObject**:这是一个用于创建ActiveX控件的对象,常用于Internet Explorer中。 2. **ADODB.Connection**:用于创建数据库连接的对象。 3. **Open方法**:用来打开数据库连接的方法,参数中包含了连接字符...

    WEB开发 之 AJAX - 创建 XMLHttpRequest 对象.docx

    以下是一个示例代码,用来判断当前浏览器是否支持XMLHttpRequest对象,如果不支持,则创建ActiveXObject: ```javascript var xmlhttp; if (window.XMLHttpRequest) { // 浏览器支持XMLHttpRequest xmlhttp = new...

    js上传单个文件.txt

    - 创建`ADODB.Stream`对象用于读取文件流。 - 设置`Type`属性为1,表示读取二进制流数据。 - 打开流对象,准备读取文件。 #### 四、UI交互逻辑 代码中还包含了对UI元素的操作,例如: - 显示文件名、进度条等。 -...

    基于JSP+AJAX的类百度搜索动模糊查询

    3. 创建XMLHttpRequest对象:使用ActiveXObject或XMLHttpRequest来创建一个异步请求对象,以便向服务器发送请求。 4. 向服务器取数据:使用open和send方法来发送请求,并使用onreadystatechange事件来处理服务器返回...

    Ajax 学习资料集

    `xmlHttpRequest`对象是Ajax的核心,它允许JavaScript在不刷新整个页面的情况下向服务器发送请求并接收响应。这个对象提供了打开、发送请求以及处理响应的方法,如`open()`用于初始化请求,`send()`用于发送请求,`...

    WEB解析本地文件

    因此解决了浏览器,创建文件队象的差异性,IE使用ActiveOBject,非IE使用XMLHttpRequest,但是此时非IE文件队象在操作对象时候即便是支持file协议,但是onreadystatechenge方法中的一些请求方法与相应状态码是HTTP...

    node-activex:ActiveXObject的Node.JS实现

    rs.EOF在没有类型信息的情况下不起作用,因为需要将EOF定义为对象) 在构造函数调用中使用可选参数 var con = new ActiveXObject ( "ADODB.Connection" , { activate : false , // Allow activate existance ...

    XmlHttp对象参考

    它在Web开发中扮演着至关重要的角色,尤其是在JavaScript和VBScript中,通过Ajax(Asynchronous JavaScript and XML)技术进行页面的无刷新更新时,XmlHttp对象是不可或缺的工具。 XmlHttp对象的核心功能在于它能够...

Global site tag (gtag.js) - Google Analytics