为什么我的activeX控件在本机网页上有反应,而在IIS虚拟服务器下没有反应

为什么我的activeX控件在本机网页上有反应,而在IIS虚拟服务器下没有反应,第1张

楼主的问题,偶也遇到过,最后,这种做法还是流产了,换了其它的实现方式其实楼主出现这个问题是因为安全问题,你的程序在IE6SP2以前用是一点都没有问题的,但现在IE6SP2SP3,IE7及其实非IE核心浏览器的复杂环境中,这种做法是很难得到成功的使用vs2005进行debug调试时为什么会成功,是因为debug时,用的根本不是IIS是个虚拟的IIS,对于本地调试,微软认为是安全的,所以得到成功(具体微软的安全机制不明)ocx控件不能使用,其实最大问题不是IIS限制,是客户端本地系统安全这里引入一个数字证书的问题,微软利用数字证书技术来控制OCX的使用 解决方案: 1,给你的OCX加上数字证书,这个可以看一下,我下面给的资料,但怎么说呢,自己做的数字证书,属于实验型的,经实验,这个证书,只能在本地发布成功,但发布远程,也是不能成功的彻底的解决,就只能找第三方数字证书发布方(他们有数字证书服务器,所以被认为是安全的)但这个服务是收费的具体申请办法请自己百度调查,当你在OCX用上了真正有效的数字后,问题就能解决,现在已有的应用案例:工商银行网上银行,招商银行网上银行 2,这个是最好的办法,就是像现在百度和GOOGLE一样,发布一个基于浏览器的工具条,当浏览器打开后,就可以调用客户端上的硬件及服务了这个办法就是现在谈得最多的BHO(browserHelperObject)技术了这里有两个问题,BHO开发技术,以及要在客户端安装软件直接形响了客户体验所以选择时,自己考虑吧资料 数字证书: http://baikebaiducom/view/204415htm 数字证书应用全攻略 http://wwwpcworldcomcn/features/1/2005/0501/590shtml VC++开发BHO插件 http://wwwprogramfancom/article/showarticleaspid=2872 回楼主: 在服务器用测试程序测试(exe的)正常 EXE当然正常了,你难到不知道,WEB开发机制和WINFORM的区别吗?WINFORM应用程序是本地执行,WEB开发,是通过浏览器查看,浏览器作为载体的情况下,它没有对本地操作的权限

发音是:[Aktiv eks] (阿克踢屋爱克斯)

概念是:ActiveX 在广义上是指微软公司的整个COM架构,但是现在通常用来称呼基于标准COM接口来实现对象连接与嵌入的ActiveX控件。后者是指从VBX发展而来的,面向微软的Internet Explorer技术而设计的以OCX为扩展名的OLE控件。通过定义容器和组件之间的接口规范,如果编写了一个遵循规范的控件,那么可以很方便地在多种容器中使用而不用修改控件的代码。同样,通过实现标准接口调用,一个遵循规范的容器可以很容易地嵌入任何遵循规范的控件。由于OLE在ActiveX控件中的应用的普及,现在OLE技术中只有少数独立于ActiveX技术,例如复合文档。

一些浏览器,例如网景浏览器等等都不同程度上支持ActiveX控件。这允许网页通过脚本和控件交互产生更加丰富的效果,同时也带来一些安全性的问题。Internet Explorer和一些其他应用程序同时支持ActiveX Documents接口规范,允许在一个应用程序中嵌入另一个支持这个规范的应用程序。很多应用软件,例如微软的Microsoft Office系列和Adobe的Acrobat Reader都实现了这个规范。

服务器端ActiveX组件通常是指运行在服务进程中的组件。一个典型应用是在IIS中运行的ASP脚本创建的ActiveX Data Objects,也称ADO。

ActiveX

微软倡导的ActiveX 网络化多媒体对象技术

Vista系统常用英文专业词语解释大全

一个微软开发出来的技术,是OLE和COM的结合产物(OLE,对象链接和嵌入;COM,组件对象模型),允许网页开发人员来建立交互性的网页,并提供和Java小程序同样的功能。

一.电脑出现IE已经阻止此站点以不安全的方式使用ActiveX控件,因此该网页无法正确显示”的处理办法:

1更改安全级别

如果你看不懂或者不会,我教你一个简单的

打开IE找到上方的

工具-internet选项-安全,

把那4个都设置下默认级别!

工具-internet选项-隐私

调为低

2主菜单“工具”——Internet选项——安全——自定义级别,

将“安全设置”中“对没有标记为安全的ActiveX”控件进行初始化和脚本运行由“禁用”改为“启用”

另一种方法,“工具”

“Internet选项”“受信任的站点”“站点”,然后填入网址即可,如果这个网站不是以https:连接的把下面“对该区域中的所有站点要求服务器验证(https:)”前面的勾去掉即可。

3主菜单“工具”——Internet选项——安全——自定义级别,

将“安全设置”中“对没有标记为安全的ActiveX”控件进行初始化和脚本运行由“禁用”改为“启用”

另一种方法,“工具”

“Internet选项”“受信任的站点”“站点”,然后填入网址即可,如果这个网站不是以https:连接的把下面“对该区域中的所有站点要求服务器验证(https:)”前面的勾去掉即可。

4你好,那么你可能使用的是 腾讯的 TT 浏览器,那么他是基于IE

内核, 你这个是TT 浏览器函数库调用的问题,你可以尝试用一下方式解决:

1先直接用 IE

打开该网页,看看是不是存在上述问题,如果没问题则是TT的问题,那么请继续下一步

2直接手工卸载TT,值得注意的是要卸载干净,要把安装TT

浏览器的文件夹一并删除,一般卸载会保留用户配置文件,所以你要手动清除这些

3重新(注意要官方)下载TT并尝试换目录安装

4下载一个 金山清理专家 去清清 注册表 及

系统垃圾

5还是出现问题那么请用金山清理专家 或者 超级兔子

来修复一下IE

5第一步:借助360安全卫士帮忙(下载地址www360cn下载360安全卫士正式版),双击打开360安全卫士

①查杀流行木马--全盘扫描木马--这时会自动更新,耐心等它更新完之后--开始扫描--扫出来的都是木马病毒,把它们全选上,进行强力查杀。

②切换到“清理恶评插件”--开始扫描——

击左边的“恶评插件”,如果有“迅雷下载组件”和“360safe实时保护功能模块”就不选中,除此之外的其他全部选上,点击“立即清理”——

点击左边的“其他插件”,如果有“迅雷下载组件”和“360safe实时保护功能模块”就不选中,除此之外的其他全部选上,点击“立即清理”——

点击左边的“信任插件”,如果有“迅雷下载组件”和“360safe实时保护功能模块”就不选中,除此之外的其他全部选上,点击“立即清理”——

这步非常非常重要,在操作过程中一般都会提示重启电脑,如果有提示重启电脑的,你就一定要重启电脑后,再次进入以上的②的步骤,继续操作,直到保证左边的“恶评插件”“其他插件”和“信任插件”三栏中,只剩下“迅雷下载组件”和“360safe实时保护功能模块”两个。

③切换到“清理使用痕迹”--全选--立即清理。

④切换到“启动项”--除ctfmon和360两项,其他选上打勾勾--禁用选中项。

第二步:借助Windows优化大师帮忙(最新版本下载wwwwoptinet),双击打开Windows优化大师

系统优化--开机速度优化--在上面的“启动信息停留时间”,向左边“快”拉动到“1秒”或“直接进入”都可以,接着在下面的“启动项”中,除了360Safetray和ctfmonexe不要选中,其他的所有启动项都要选中--优化。

②切换到“系统清理”--扫描--全部删除--是--确定。退出,重启电脑。

ActiveX 是一个打开集成平台提供开发、 用户和 Web 发生器快速简便快捷地为 Internet 和 Intranet 创建程序集成和内容。 使用 ActiveX, 可轻松插入到 Web页, 多媒体效果、 交互式对象, 以及复杂程序创建用户体验相当的高质量多媒体 CD-ROM 。

根据微软权威的软件开发指南MSDN(Microsoft Developer Network)的定义,ActiveX插件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中。

ActiveX的内容

[编辑本段]

ActiveX 控件

以前称为 OLE 控件或 OCX 控件, ActiveX, 是组件 (或对象) 打包, 别人编程功能, 以便您可以重用 Web页或其他程序中插入。 例如, 随 InternetExplorer 一起提供 ActiveX 控件可用于增强 Web页具有复杂格式功能和动画。

ActiveX 控件通过 Java 程序和 Netscape 插件关键优点是, 还可以用许多编程语言, 包括所有 Microsoft 编程和数据库语言编写程序中使用 ActiveX 控件。

ActiveX 文档

用一个 ActiveX - 识别 Web 浏览器如 InternetExplorer, 浏览时 ActiveX 文档使您能够使用自己的工具栏和菜单可打开程序。 这意味着您可以通过使用 ActiveX - 识别 Web 浏览器打开非HTML 文件, 如 MicrosoftExcel 或 MicrosoftWord 文件。

ActiveX 脚本

ActiveX 脚本支持最常用脚本语言, 包括 Microsoft VisualBasic 脚本和 JavaScript。 ActiveX 脚本可用于集成行为若干 ActiveX 控件或 Java 程序从 Web 浏览器或服务器, 扩展其功能。

ActiveX的特点

[编辑本段]

在因特网上,ActiveX插件软件的特点是:一般软件需要用户单独下载然后执行安装,而ActiveX插件是当用户浏览到特定的网页时,IE浏览器即可自动下载并提示用户安装。 ActiveX插件安装的一个前提是必须经过用户的同意及确认。

ActiveX插件技术是国际上通用的基于Windows平台的软件技术,除了网络实名插件之外,许多软件均采用此种方式开发,例如Flash动画播放插件、Microsoft MediaPlayer插件、CNNIC通用网址插件等。

相关内容

[编辑本段]

1浏览器如何保证ActiveX插件的安全性?

当通过Internet发行软件时,软件的安全性是一个非常引人注意的问题,IE浏览器通过以下的方式来保证ActiveX插件的安全:

ActiveX使用了两个补充性的策略:安全级别和证明,来追求进一步的软件安全性;

Microsoft提供了一套工具,可以用它来增加ActiveX对象的安全性;

通过Microsoft的验证代码工具,可以对ActiveX控件进行签名,这告诉用户你的确是控件的作者而且没有他人篡改过这个控件;

为了使用验证代码工具对组件进行签名,必须从证书授权机构获得一个数字证书;证书包含表明特定软件程序是正版的信息,这确保了其他程序不能再使用原程序的标识。证书还记录了颁发日期。当您试图下载软件时,Internet Explorer 会验证证书中的信息,以及当前日期是否在证书的截止日期之前。如果在下载时该信息不是最新的和有效的,Internet Explorer 将显示一个警告;

在IE默认的安全级别中,ActiveX控件安装之前,用户可以根据自己对软件发行商和软件本身的信任程度,选择决定是否继续安装和运行此软件。

在最新的IE 7中,安全性有进一步的提高。

2关于三个概念:ActiveX、OLE和COM

熟悉面向对象编程和网络编程的人一定对ActiveX、OLE和COM/DCOM这些概念不会陌生,但是它们之间究竟是什么样的关系,对许多们还是比较模糊的。在具体介绍它们的关系之间,我们还是先明确组件(Component)和对象(Object)之间的区别。组件是一个可重用的模块,它是由一组处理过程、数据封装和用户接口组成的业务对象(Rules Object)。组件看起来像对象,但不符合对象的学术定义。它们的主要区别是:1)组件可以在另一个称为容器(有时也称为承载者或宿主)的应用程序中使用,也可以作为独立过程使用;2)组件可以由一个类构成,也可以由多个类组成,或者是一个完整的应用程序;3)组件为模块重用,而对象为代码重用。现在,比较流行的组件模型有COM(Component Objiect Module,对象组件模型)/DCOM(Distributed COM,分布式对象组件模型)和CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)。到这里,已经出现了与本文相关的主题COM,而CORBA与本文无关,就不作介绍。之所以从组件与对象的区别说起,是想让大家明确COM和CORBA是处在整个体系结构的最底层,如果暂时对此还不能理解,不妨继续往下看,最后在回过头看一看就自然明白了。现在开始阐述ActiveX、OLE和COM的关系。首先,让大家有一个总体的概念,从时间的角度讲,OLE是最早出现的,然后是COM和ActiveX;从体系结构角度讲,OLE和ActiveX是建立在COM之上的,所以COM是基础;单从名称角度讲,OLE、ActiveX是两个商标名称,而COM则是一个纯技术名词,这也是大家更多的听说ActiveX和OLE的原因。既然OLE是最早出现的,那么就从OLE说起,自从Windows操作系统流行以来,“剪贴板”(Clipboard)首先解决了不同程序间的通信问题(由剪贴板作为数据交换中心,进行复制、粘贴的操作),但是剪贴板传递的都是“死”数据,应用程序开发者得自行编写、解析数据格式的代码,于是动态数据交换(Dynamic Data Exchange,DDE)的通信协定应运而生,它可以让应用程序之间自动获取彼此的最新数据,但是,解决彼此之间的“数据格式”转换仍然是程序员沉重的负担。对象的链接与嵌入(Object Linking and Embedded,OLE)的诞生把原来应用程序的数据交换提高到“对象交换”,这样程序间不但获得数据也同样获得彼此的应用程序对象,并且可以直接使用彼此的数据内容,其实OLE是Microsoft的复合文档技术,它的最初版本只是瞄准复合文档,但在后续版本OLE2中,导入了COM。由此可见,COM是应OLE的需求而诞生的,所以虽然COM是OLE的基础,但OLE的产生却在COM之前。COM的基本出发点是,让某个软件通过一个通用的机构为另一个软件提供服务。COM是应OLE的需求而诞生,但它的第一个使用者却是OLE2,所以COM与复合文档间并没有多大的关系,实际上,后来COM就作为与复合文档完全无关的技术,开始被广泛应用。这样一来,Microsoft就开始“染指”通用平台技术。但是COM并不是产品,它需要一个商标名称。而那时Microsoft的市场专家们已经选用了OLE作为商标名称,所以使用COM技术的都开始贴上了OLE的标签。虽然这些技术中的绝大多数与复合文档没有关系。Microsoft的这一做法让人产生这样一个误解OLE是仅指复合文档呢?还是不单单指复合文档?其实OLE是COM的商标名称,自然不仅仅指复合文档。但Microsoft自己恐怕无法解释清楚,这要花费相当的精力和时间。于是,随着Internet的发展,在1996年春,Microsoft改变了主意,选择ActiveX作为新的商标名称。ActiveX是指宽松定义的、基于COM的技术集合,而OLE仍然仅指复合文档。当然,ActiveX最核心的技术还是COM。ActiveX和OLE的最大不同在于,OLE针对的是桌面上应用软件和文件之间的集成,而ActiveX则以提供进一步的网络应用与用户交互为主。到这里,大家应该对ActiveX、OLE和COM三者的关系有了一个比较明确的认识,COM才是最根本的核心技术,所以下面的重点COM。让对象模型完全独立于编程语言,这是一个非常新奇的思想。这一点从C++和Java的对象概念上,我们就能有所了解。但所谓COM对象究竟是什么呢?为了便于理解,可以把COM看作是某种(软件)打包技术,即把它看作是软件的不同部分,按照一定的面向对象的形式,组合成可以交互的过程和以组支持库。COM对象可以用C++、Java和VB等任意一种语言编写,并可以用DLL或作为不同过程工作的执行文件的形式来实现。使用COM对象的浏览器,无需关心对象是用什么语言写的,也无须关心它是以DLL还是以另外的过程来执行的。从浏览器端看,无任何区别。这样一个通用的处理技巧非常有用。例如,由用户协调运行的两个应用,可以将它们的共同作业部分作为COM对象间的交互来实现(当然,现在的OLE复合文档也能做到)。为在浏览器中执行从Web服务器下载的代码,浏览器可把它看作是COM对象,也就是说,COM技术也是一种打包可下载代码的标准方法(ActiveX控件就是执行这种功能的)。甚至连应用与本机OS进行交互的方法也可以用COM来指定,例如在Windows和Windows

NT中用的是新API,多数是作为COM对象来定义的。可见,COM虽然起源于复合文档,但却可有效地适用于许多软件问题,它毕竟是处在底层的基础技术。用一句话来说,COM是独立于语言的组件体系结构,可以让组件间相互通信。随着计算机网络的发展,COM进一步发展为分布式组件对象模型,这就是DCOM,它类似于CORBA的ORB,本文对此将不再做进一步的阐述。通过上面的讲述相信大家一定对ActiveX、OLE和COM/DCOM的关系有了一个清楚的了解。

备注

[编辑本段]

在编辑过程中,采用了部分机器翻译的内容。

特注

[编辑本段]

2008年中 ActiveX为微软十大垃圾软件榜首

使用 ActiveX 控件,可以很快地在网址、台式应用程序、以及开发工具中加入特殊的功能例如动画什么的 还有保密功能就是银行帐号下的密码通常要装这个才能输入

ActiveX

一、ActiveX的由来

ActiveX最初只不过是一个商标名称而已,它所涵盖的技术并不是各自孤立的,其中多数都与Internet和Web有一定的关联。更重要的是,ActiveX的整体技术是由Microsoft的 COM(Component Object Model,组件对象模型)构筑的。但不要误认为ActiveX是定义了所有包含基于COM的技术。COM与Microsoft Office和Windows以及Microsoft现在所做的一切都有关联,但显然这些产品并不是ActiveX家族中的成员。

ActiveX是从Microsoft的复合文档技术——OLE成长起来的。OLE最初发布的版本,只是瞄准复合文档,但在后续版本OLE2中,导入了COM。COM是应OLE设计者的需求而诞生的。其基本的出发点是想让某个软件通过一个通用的机构为另一个软件提供服务。因而,COM 的第一个使用者是OLE2。实际上,COM与复合文档间,没有多大关系。后来,COM就作为与复合文档完全无关的技术,开始被广泛使用。这样一来,Microsoft就开始"染指"通用平台技术。但COM不是产品,它需要一个商标名称。不巧,市场专家们选用了"OLE"作为商标名称。于是,使用COM的技术都开始贴上了OLE的标签。当然,这些技术中的绝大部分与复合文档没有关系。Microsoft要想向人们解释:"OLE不单单是指复合文档!",这要花费相当的精力和时间。

于是,在1996年春,Microsoft改变了主意,选择了ActiveX作为新商标名。ActiveX是指宽松定义的、基于COM的技术集合,而OLE仍然仅指复合文档。当然,最重要的核心还是 COM。

让对象模型完全独立于编程语言,这是一个非常新奇的思想。从C++和Java的对象上 ,我们就能有所了解。但所谓COM对象究竟是什么为了便于理解,可以把COM看作是某种( 软件)打包技术,即把它看作是使软件的不同部分,按照一定的面向对象的形式,组合成可以交互的过程和一组支持库。COM对象可以用C++、Java和VB等任意一种语言编写,并可以 DLL或作为不同过程工作的执行文件的形式来实现。使用COM对象的客户端,无需关心对象是用什么语言写的,也无需关心它是以DLL、还是以另外的过程来执行的。从客户端来看 ,无任何区别。

这样一个通用的处理技巧非常有用。例如,由用户协调运行的两个应用,可以将它们的共同作业部分,作为COM对象间的交互来实现(当然,现在的OLE复合文档也能做到)。为在浏览器中执行而从Web服务器下载的代码,浏览器可把它看作是COM对象。即是说,COM技术也是一种打包可下载代码的标准方法(ActiveX控件执行这种功能)。

甚至连应用与本机OS进行交互的方法,也可以用COM来指定(Windows和Windows NT用的新API,多数是作为COM对象来定义的)。COM虽然起源于复合文档,但却可有效地适用于许多软件问题。

二、ActiveX王国

Active平台是Microsoft的世界观。其基本思想是:使用ActiveX控件,来构筑包括从与用户交互和适应COM的事务处理监视器到Web服务器、全部实现自动化的机构。Active 平台包括两大部分:Active Server和Active Client。

Active Server实际上是中间层。使用组件或Active服务器页面,来提供用于业务逻辑和主要应用处理的场所。ActiveServer的技术,其核心是NT Server、Microsoft事务处理服务器、数据管理服务、目录服务、Web服务以及网络服务。

事务处理服务器是把线程产生和数据库多重化等传统的TP监控功能与Microsoft的基于组件的编程模型结合起来。数据管理服务等Active平台的其他组件是用OLE DB和ODBC ,访问DB2、Oracle、SQL Server等的数据源。目录服务是在DCOM(Distributed COM,分布式COM)的周围,提供目录服务层,这样使远程对象在网络上能相互搜索。Web服务以Inter net信息服务器为中心进行构筑,它为服务器上的Web应用开发,提供脚本生成(Scripting )机构。网络服务以DCOM为中心进行构筑,通过以同步MS-RPC为中介的网络,使之能够连接控件。

Active Client是一种交叉平台。Microsoft的技术纵然是独家所有,但也希望将这种技术向多个OS开放。具体实施计划是使用脚本引擎(Scripting Engine)。这种脚本引擎是由标准的HTML和带有Microsoft特色的Java虚拟机(JVM)、Microsoft的VBScript与JSc ript所构成的。Active Client组装进了Microsoft的IE 30和40,通过ActiveX,可以变成用户的C/S应用的一部分。

从清一色采用Windows的企业用户来看,Active平台可以提供坚固的、具有可缩放性的服务器应用开发平台。ActiveServer在TP监视器这类高端产品的场合,也利用常见的一些工具和技术。因此,小型工作组和Intranet应用不会超越Active Server的能力。Acti ve平台的目标机虽是异种机环境,但由于过分依赖IE,所以不能驱动客户端。尽管在一些非Windows平台上也推出了Explorer,但最好的支持、最新版本的Explorer还是在Window s上。

三、ActiveX的进展

1向分布计算扩充

COM的最初版本假定COM对象及其客户端是在同一个机器上运行(可以在同一个进程内 ,也可以在不同的进程内),DCOM是ActiveX家族中的重要成员。后来,它在Windows 95中也能使用。DCOM对于客户端制作COM对象、进行交互的方法没有做任何改变。

客户端使用完全相同的代码,可以访问本地以及远程对象。但许多场合下,客户想使用少数的DCOM附件。DCOM备有分布式安全保密机制,提供认证和数据加密。在1998年要发布的Windows NT 50中,要将Kerberos等安全保密协议,追加到DCOM中。DCOM已能够利用域名服务等简洁的目录服务,以用于搜寻在其他机器上的COM对象。NT 50要追加对Acti ve Directory的支持。Active Directory是基于域名服务和轻型目录访问协议的。

DCOM的劲敌,此前一直是OMG(Object Management Group)的CORBA(Common Object R equest Broker Architecture)。它被组装进了Iona的Orbix和Visigenic的VisiBroker等产品中。不久前,另一种支持分散对象的技术——Java的远程方法调用出台了。无论是C ORBA,还是DCOM,都能在多种语言写的对象间进行通信。而RMI却不同,它只限于在由Java 实现的对象间进行通信。显然,这是个制约。但RMI使用起来非常简单。另外,RMI的开发者可以用Java来设计协议规范。因此,在语言的功能上,可以做得浑然一体。

若写一个只处理两三个客户端的DCOM服务器,还是比较简单的。但是,要构筑一个高效处理几百、几千个客户端的DCOM服务器,则相当之难。

为了便于编写可缩放的DCOM服务器,Microsoft发布了事务处理服务器(MTS)。MTS在支持事务处理的同时,也提供自动生成线索和智能对象的重复使用等服务。MTS使可缩放服务器的制作变得相当简单。即使是无需事务处理的应用,使用MTS也有好处。实际上,M icrosoft鼓励人们用VB来写MTS应用。这与开发业务服务器的传统手法不同,所有的MTS应用,都是作为一个以上的COM对象来编写,且必须以DLL来实现。一般情况下,客户端看不到 MTS。客户端只管一如既往地制作、使用COM对象即可。

2组件的标准化

基于组件的应用开发,其方法和组装电子装置一样,可以用已制作好的组件部件来构筑应用。桌面用的、基于COM的组件叫做ActiveX控件。所谓ActiveX控件不过是遵从一定的标准、与客户端交互的COM对象而已。

例如,ActiveX控件必须通过Automation (即使用dispinterfaces)来公开方法。用这个被标准化的交互功能,可以在多个不同的上下文中,使用同一个控件。在这个标准接口的"幕后",ActiveX控件几乎是什么都能执行。现在,许多软件公司都能提供实现各种功能的控件。

ActiveX控件是作为DDL编写的,为此,必须装载到某个容器中。ActiveX控件的原型容器是VB,除此之外,还有多种容器可供选择。目前,一个非常重要的控件容器是Microsoft 的Web浏览器

现在所谓ActiveX控件的那些内容,是实现许多方法所必须的。已经把它们从机器的本地硬盘移到了VB等容器中。几百KB和几MB的控件,似乎没有什么大区别。但要将控件装载到Web浏览器时,很可能要通过速度很慢的电话线。现在,控件的大小已经是非常关键的问题。一旦要执行超过了某个限度以上的控件,就会延长下载时间。因此,Microsoft规定 :在ActiveX控件中,只能执行绝对必要的功能。

Apple和IBM推行的OpenDoc,曾是ActiveX控件的主要竞争对手。现在OpenDoc的赞助企业,已正式宣告中止资助。大部分与Microsoft对抗的企业,转而支持JavaBeans(基于J ava的组件结构)。ActiveX控件,基本上都是和Windows捆绑在一起、以二进制机器代码发放的,而JavaBeans却不同,它在哪儿都能执行。这当然是有代价的。显而易见,只要不牺牲可移植性,就不可能完全、彻底地利用本地环境。要编写从公共Internet上能下载的组件时,应优先选择JavaBeans。

桌面组件市场在持续、急速增长。其中绝大部分是以ActiveX控件构筑的(目前Java Beans仍然是少数)。但服务器组件的标准化要落后一些。在桌面上,Web浏览器、VB以及 PowerBuilder这些编程环境,作为容器是强有力的。但服务器容器又该当如何呢作为服务器上的组件容器,事务处理服务器是一个较好的选择。

Microsoft的竞争对手,千方百计要阻止MTS和NT称霸市场。他们正在快马加鞭地制订服务器上的组件标准,其中最有前途的是Enterprise JavaBeans。它是JavaBeans的扩充 ,并定义了事务处理服务器接口。Enterprise JavaBeans的支持者们,希望独立软件厂商不是将服务器组件作为COM组件来编写,而是要作为Beans来编写。

四、ActiveX的构筑工具

随着ActiveX控件的推广,ActiveX控件的开发工具逐日增加。由于ActiveX不依赖于语言,所以传统的开发工具基本上都能构筑、配备ActiveX控件。最常用的有Delphi、Po werBuilder以及Visual Basic、Visual C++、Visual J++等。

1 基本概况

用3GL开发ActiveX控件的方法有:①MFC (Microsoft Foundation Class,Microsoft 基础类),②ATL(ActiveX Template Library,ActiveX模板库),③BaseCtrl Framework等。MFC最经典,采用MFC,可以使开发者不去关心接口,而是集中精力关注对象的动作。缺点是控件的规模较大且执行时DLL必须与容器同时存在。ATL可利用模板生成代码。就是说 ,库和DLL无需与控件一起推出。在ATL中,需要从作为模板存在的几个基本类派生类。AT L也有缺点,即接口的处理较难,应用中必要的接口,必须分别制作。另外,ATL不支持类向导(Class Wizard)。遗憾的是,没有使对象描述语言(Object Description Language)和接口定义语言文件、与用户代码自动同步的向导。BaseCtrl是个简便型库。与ATL非常相似,但无模板。实际上,由于BaseCtrl过于简便,Microsoft并不支持它。在BaseCtrl中,带有几个万能控件(Skeleton Control)。BaseCtrl提供容易理解的ActiveX开发模型,但与 ATL相比并不简单,且灵活性也不及ATL。目前看来,对于ActiveX控件开发者来说,BaseCt rl是个"苦涩"的选择。

2 开发工具

可制作ActiveX控件的、最初的工具是Microsoft的Visual C++。它可为ActiveX开发者提供最多的控件。Visual J++也可以制作ActiveX控件。

Borland推出的两个工具(JBuilder和IntraBuilder)也非常令人瞩目。但是,用Borl and的工具能制作ActiveX组件的,只有Delphi 30和C++ Builder。Borland把Delphi的A ctiveX开发功能,叫作Active Inside。它是将任意的Delphi Window做成ActiveX的形式。Active Inside备有配备在Web上的新控件。Delphi可以将控件链接到COM和DCOM。

PowerBuilder 50是改造成能用于ActiveX开发的、客户机/服务器开发工具。Powe rBuilder可以将Data Window(PowerBuilder应用开发的核心部分)作为ActiveX控件来配备。以使现在的PowerBuilder开发者,能使用PowerScript编程语言等某些熟悉的功能。

具有制作ActivX控件最好工具的,当属Microsoft。例如,若用Visual Basic 50,开发者就可使用可视化编程环境和本机的Visual Basic for Application语言,来开发控件。

五、ActiveX

的未来的确,Windows和Windows NT的世界,是ActiveX技术的最佳环境。但无论Micr osoft如何卖力推进它的OS,也不能使所有的企业都变成清一色的Windows。因此,Micros oft要设法使COM、DCOM以及ActiveX家族的一部分,也能在其他OS上使用。现在,在Macin tosh中,已经支持ActiveX,其中也包含对ActiveX控件的支持。Software AG正在把这些技术移植到多个Unix和IBM的OS/390上。DEC和HP也打算将这些技术在自己的系统上使用,他们也是用移植Microsoft代码的办法来实现的。

COM已成为Windows 95和Windows NT环境下基础软件的重要部分,但它的未来还有许多不确定的因素。例如,Microsoft是否能将COM作为多平台技术,让其继续存在发展下去 为了使NT服务器能适合已有的企业,就必须要使DCOM等分布式服务也能在非Microsoft平台上应用。要解决这些问题, 需花费相当长的一段时间。另外, 基于CORBA的产品和Jav a的RMI,已成功地运行在多OS环境下。多平台DCOM出台得越晚,CORBA和RMI就领先越多。

ActiveX控件和JavaBeans的竞争前景如何无论使软件运行在Web浏览器上也好,还是在另外的地方运行也好,总之,组件式软件(ComponentWare)将是下一个软件开发的热点。目前,ActiveX控件虽然暂居领先,但由于OpenDoc的自生自灭,与Microsoft竞争的企业会结为一体与之抗衡。用户决不希望看到"一统天下",仅就这点而言,JavaBeans也会在这一市场竞争中抢占一席之地。

ActiveX® 在广义上是指微软公司的整个COM架构,但是现在通常用来称呼基于标准COM接口来实现对象连接与嵌入的ActiveX控件。后者是指从VBX发展而来的,面向微软的Internet Explorer技术而设计的以OCX为扩展名的OLE控件。通过定义容器和组件之间的接口规范,如果编写了一个遵循规范的控件,那么可以很方便地在多种容器中使用而不用修改控件的代码。同样,通过实现标准接口调用,一个遵循规范的容器可以很容易地嵌入任何遵循规范的控件。由于OLE在ActiveX控件中的应用的普及,现在OLE技术中只有少数独立于ActiveX技术,例如复合文档。

一些浏览器,例如Internet Explorer、网景浏览器等等都不同程度上支持ActiveX控件。这允许网页通过脚本和控件交互产生更加丰富的效果,同时也带来一些安全性的问题。Internet Explorer和一些其他应用程序同时支持ActiveX Documents接口规范,允许在一个应用程序中嵌入另一个支持这个规范的应用程序。很多应用软件,例如微软的Microsoft Office系列和Adobe的Acrobat Reader都实现了这个规范。

服务器端ActiveX组件通常是指运行在服务进程中的组件。一个典型应用是在IIS中运行的ASP脚本创建的ActiveX Data Objects,也称ADO。

DLL文件即动态链接库文件,是一种可执行文件,它允许程序共享执行特殊任务所必需的代码和其他资源。Windows提供的DLL文件中包含了允许基于Windows的程序在Windows环境下操作的许多函数和资源。

DLL多数情况下是带有DLL扩展名的文件,但也可能是EXE或其他扩展名。它们向运行于Windows操作系统下的程序提供代码、数据或函数。程序可根据DLL文件中的指令打开、启用、查询、禁用和关闭驱动程序。

DLL是Dynamic Link Library的缩写,意为动态链接库。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可有多个DLL文件,一个DLL文件也可能被几个应用程序所共用,这样的 DLL文件被称为共享DLL文件。DLL文件一般被存放在C:\Windows\System目录下

终端服务 ActiveX 控件 (mstscaxdll) 跟客户端内壳的版本不相配

这个错误到百度上和google上搜索了半天,没有任何可用信息,没有办法只好自己动手了。

我首先从另一台服务器上拷贝了一个mstscaxdll过来,把系统的原来的mstscaxdll删除,结果不让删除,说在运行,使用重命名,成功了,之后把另一个服务器上拷贝过来的mstscaxdll 粘贴到windows\system32下面,再返回桌面,点远程桌面快捷方式,还是提示这个错误。

我来到windows\system32下面,找到mstscexe,双击运行,正常了,返回桌面再点快捷方式,还是不行错误依旧,之后我把桌面的快捷方式删除,重新建立了一个,运行,没有问题了。。。。

准备删除被我重新命名的mstscaxdll提示无法删除,纳闷了,我怀疑是不是这个文件的问题,于是我把复制进来的mstscaxdll重新命名,运行mstscexe,提示错误:无法加载终端服务activex控件。请确认 mstscaxdll 在路径中。

点击确定,再运行mstscexe,正常了,并自动生成了一个新的mstscaxdll,问题终于解决,估计原来的mstscaxdll文件被损坏掉了。我把服务器重启,原来被我重命名的mstscaxdll文件也成功删除。到此问题解决。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 为什么我的activeX控件在本机网页上有反应,而在IIS虚拟服务器下没有反应

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情