admin管理员组

文章数量:1530842

    今天登陆一个部署在本地的B/S架构系统,突然出现弹出Automation 服务器不能创建对象,我还在用IE8。

    先扯远一点emmmm.............在传统架构下,应用程序被分割成二进制文件或者类,而在COM架构下,开发人员可以先开发出一个个功能性的COM组件,然后把他们组合成一个应用程序。这样单一功能的更新就可以通过更换组件来实现,组件还可以实现复用,通过增加与抽离组件还可以实现对应用程序的定制。ActiveX是微软对于一系列策略性面向对象程序技术和工具的称呼,这些技术中比较核心的就是组件对象模型(COM),它是关于如何建立组件以及如何通过组件建立程序的一种技术规范,自动化(Automation)技术的目的就是让COM组件方便被VB或者Script语言调用,是COM中的核心技术。

    有这么一个概念和关系,COM组件就是一组接口的集合,其中实现了IDispath的接口叫Automation组件,在Automation组件的基础上,再实现规定的接口具有特定的功能就是ActiveX控件。

    Automation分为服务器和客户端两部分,服务器端定义了自己的属性和方法,客户端下载下来的ActiveX控件通过服务器提供的IDispath接口可以读取或者设置这些属性并调用提供的方法在应用程序上完成特定的功能。

    所以,Automation 服务器不能创建对象,原因很有可能是客户端的ActiveX控件下载不了。不是所有自定义的ActiveX控件IE都会信任并下载,我是通过修改IE浏览器Internet选项--安全--自定义级别中将第三项“对未标记为可安全执行脚本ActiveX控件初始化并执行脚本”设置为启用,解决了问题。

    网上还有其他解决方案我也没有去尝试,写这篇博客就是想梳理一下诸多解决方案后面的原委,可能自己没有理太清,欢迎大家指出我的错误或者交流新的解决方案。后续我试过其他解决方案也会继续来补充的。



    

本文标签: 浏览器对象服务器Automation