首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用C# ASP.NET访问ActiveX控件

使用C# ASP.NET访问ActiveX控件
EN

Stack Overflow用户
提问于 2011-07-12 19:38:53
回答 2查看 3.4K关注 0票数 0

有人能告诉我如何检索带有OBJECT标签的ActiveX元件吗?

在我的ASP文件中,我检索了一个包含以下代码的ActiveX控件:

代码语言:javascript
复制
<OBJECT classid="clsid:A919AF5F-637C-423E-835A-B56448C1AD9B">
</OBJECT>

结果就是,Activex控件在web page..so上弹出到目前为止还不错。

问题是这段代码总是在客户机上查找ActiveX控件,我希望(当然)从服务器检索ActiveX控件。

在OBJECT标记的文档中,我看到应该包含一个名为RUNAT=Server的属性,以便改为从服务器获取对象,因此我尝试使用以下代码从服务器而不是客户机检索ActiveX

代码语言:javascript
复制
 <OBJECT RUNAT=Server id=whatevername
    classid="clsid:A919AF5F-637C-423E-835A-B56448C1AD9B">
    </OBJECT>

...but,当我这样做的时候,ActiveX控件不会出现。有人能理解为什么吗?在使用OBJECT-tag之前,是否有必要实例化-id,或者可以将此id设置为任何值?....I只想让ActiveX显示在客户端浏览器中,这是错的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-12 20:09:55

ActiveX只是一种客户端技术。它旨在允许在客户端计算机上注册的COM对象在浏览器中实例化。

因此,您应该问的问题是“如何在客户端PC上安装/注册我的COM对象”。

基本上,您需要向object标记添加一个codebase属性,指定一个指向(正确打包的) ActiveX对象的URL。例如:

代码语言:javascript
复制
<object 
    classid="clsid:<guid>" 
    codebase="http://mydomain.com/path/to/mycabfile.cab">
</object>

ActiveX对象通常打包在CAB文件中,如果它是用.NET编写的,则需要将其打包在CAB文件内的MSI中。

有关从web服务器部署.NET ActiveX组件的信息,请访问please see my answer here

有关部署非.NET组件的信息,只需搜索谷歌--它比.NET方式简单得多!

最后,如果您在intranet环境中,不要忘记考虑使用Active Directory组策略或类似的技术(如SMS)来部署ActiveX组件-这种方法可能简单得多。

票数 4
EN

Stack Overflow用户

发布于 2016-03-20 03:42:36

ActiveX最初作为客户端组件标准出现在1995年,但4年后成为服务器端wbe应用程序的标准。所有经典的ASP应用程序systems/PHP/ColdFusion/Perl都是使用非交互式ActiveX服务器端组件构建的,从而提高了基于VBScript的web应用程序代码的解释性能,并允许访问服务器端的各种API和分布式COM功能。

COM+增加了以高效方式运行这些组件的可能性,例如允许COM+ applications/COM objects/threads池化。

ActiveX是OLE的简化版本,只有两个强制的轻量级接口,由COM组件实现为ActiveX (与OLE所需的众多接口相比):IUnknown (列出ActiveX组件公开的可用属性/方法)和IDispatch,用于方法和函数的后期绑定。

ActiveX服务器端支持允许简单的基于泛型类型的web应用程序编程风格,而不需要关心类型声明。它总体上支持XP编程风格和敏捷SDLC的流行增长。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6663592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档