asp.net com组件如何在客户端注册? 写好了com组件,IE不能自动下载控件 所以调用时不好使 不知道如何能让客户端使用com组件?

解决方案 »

  1.   

    VB(不是vb.net)可以直接将它的用户控件打包成ActiveX组件并且自动成CAB包和HTML范例(来说明如何使用打包好的CAB),给你贴一个它生成的HTML:<HTML>
    <HEAD>
    <TITLE>工程1.CAB</TITLE>
    </HEAD>
    <BODY>
    <!-- 如果这页上的任何控件需要授权,您必须
    创建一个授权包文件。 运行 LPK_TOOL.EXE 来创建
    要求的 LPK 文件。 LPK_TOOL.EXE 将从 ActiveX SDK 中找到,
    http://www.microsoft.com/intdev/sdk/sdk.htm. 如果您有 Visual
    Basic 6.0 CD, 您可以在\Tools\LPK_TOOL 目录下找到它。 下面是对象标记的例子:<OBJECT CLASSID="clsid:5220cb21-c88d-11cf-b347-00aa00a28331">
    <PARAM NAME="LPKPath" VALUE="LPKfilename.LPK">
    </OBJECT>
    --><OBJECT ID="test1"
    CLASSID="CLSID:A8787630-0528-4739-A594-57A4D80974FF"
    CODEBASE="工程1.CAB#version=1,0,0,0">
    </OBJECT><script language="javascript" EVENT="abcChanged" FOR="test1"> 
    alert(test1.abc);
    </script><OBJECT ID="UserControl2"
    CLASSID="CLSID:F6D8B8CE-087E-4309-898E-6329DCAA3E19"
    CODEBASE="工程1.CAB#version=1,0,0,0">
    </OBJECT>
    </BODY>
    </HTML>
      

  2.   

    做成ActiveX 或者DLL 通过打成CAB包 添加数字证书 添加相应的DLL 依赖文件等 让用户下载安装
    类似与工商银行的插件那样。 做成Exe的也行
      

  3.   

    <script language="javascript" EVENT="abcChanged" FOR="test1"> 
    alert(test1.abc);
    </script>
    这一段是我手工加到它生成的HTML文件上去的,用来给你演示一下如何使用ActiveX组件实例test1。
      

  4.   

    如果COM真的是要在用户端执行一些通过网页发送信息 不能解决的问题的时候才用用的ActiveX 或者一些特殊的功能 硬件使用 大规模管理等
    先检查一下自己的需求很环境 是不是确实需要这么做。
      

  5.   

    回:
    Tinary3v0 
    程序_归来需求就是必须要这样做了,而且在本机功能已经实现了,在页面上嵌入了winform程序,还有你说的那个思路我懂得,手动给客户端的system32加了dll,可是注册不成功现在的问题是,在客户机上不知道如何去调用正在研究
    sp1234
    唉,心不够狠毒,发不了横财给的代码
      

  6.   

    问题描述得不够清楚。
    1. 如果想在客户端(IE)显示winform的话,那么只能用ActiveX控件,看到最后你的回帖,我估计你是这种需求。
    2. 如果只是你的ASP.NET程序需要调用一个COM组件的话,因为这两者都是运行在服务端,所以不需要客户端下载任何东西。你只要把COM组件Add reference进来,在ASP.NET中就可以像调用普通dll一样调用了。
      

  7.   

    sp1234 
    唉,心不够狠毒,发不了横财 这个看不太懂,是自动生成的
    我的是一个dll,是c#,webform的,调用方法不太一样,或者讲讲那个html的原理?和生成的控件需要放的位置?还是希望能有个webform的例子```
      

  8.   


    archu 1. 如果想在客户端(IE)显示winform的话,那么只能用ActiveX控件,看到最后你的回帖,我估计你是这种需求。
    是用的AX控件,现在已经把AX控件打包完毕,在服务端可以调用成功
    2. 如果只是你的ASP.NET程序需要调用一个COM组件的话,因为这两者都是运行在服务端,所以不需要客户端下载任何东西。你只要把COM组件Add reference进来,在ASP.NET中就可以像调用普通dll一样调用了。 是个AX控件,需求是要在客户端本地,处理客户端的图片,如合成,改变颜色等,处理完毕之后再上传到服务器,也就是说要在客户端本地处理asp.net的代码,所以给嵌入了winform的AX控件生成的dll,服务端本地测试没问题,客户端应该是我没有注册明白,所以访问时显示不出来,dll放到了system32里,运行-->regsvr32.exe active.dll,显示注册失败,调用代码为:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="TPHC.aspx.cs" Inherits="private_dzjc_XXLR_TPHC" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>合成</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <object id = "tphc" classid = "clsid:903b468e-2906-42a1-924e-5712bb74d21a" width = "1500" height = "3000" codebase = "http://192.168.1.137/zl_dzjc/active.dll" ></object>
        </div>
        </form>
    </body>
    </html>