【问题标题】:Embed a (Server Side) ActiveX Control in a Web Page (Client Side) C#在网页(客户端)C# 中嵌入(服务器端)ActiveX 控件
【发布时间】:2013-01-05 13:23:37
【问题描述】:

我想嵌入一个由服务器创建并发送到客户端以显示在网页中并保持更新的 ActiveX 包装器 (System.Windows.Forms.AxHost) 那可能吗 ? 我认为可以使用对象来完成,但不确定如何使用 C# ASP .Net 来完成

【问题讨论】:

    标签: c# asp.net html client-server activex


    【解决方案1】:

    阅读您的问题,您可能会更具体地提出以下问题:

    • 我想要一个 activex 控件的实例,它在服务器上实例化并呈现在客户端上,并保持最新、交互式等,就像它已在客户端上实例化一样。

    不,这是不可能的。当您从服务器传递<object classid="sid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"/> 时,您并没有传递该对象的实例。您正在向客户端发送指令以实例化和呈现该对象。归根结底,http 通信只是文本,而不是内存块和可执行代码(这就是实例化对象)。服务器吐出的任何东西都必须在客户端上实例化。浏览器对 html 标记这样做,如果它们可能会这样做对象

    1. 支持对象(java对象需要JVM,activex对象需要MS基础设施)
    2. 对象已安装或可安装( 代码必须在客户端执行,因此代码必须到达那里)
    3. 本地安全设置允许这种事情(这通常是 越来越多的情况并非如此)

    ActiveX 控件本质上是客户端(最好避免使用更安全和广泛支持的技术来创建强大的 Web UI,例如 ajax

    【讨论】:

    • 您还建议我怎么做?我想发送一个服务器端启动的组件并显示它的图像或以某种方式将其镜像到具有交互的客户端,然后将此交互发送回服务器以将其应用于服务器对象,也许是 JavaScript 和 ajax?还是有其他更简单的方法或技术可以做到这一点?
    • @IhabHajj - 男孩,我想不出一个好的解决方案。 ActiveX 控件并不意味着看起来那样工作。我很冷地看到发送服务器实例化控件的图像,但保持它的“交互性”充其量是困难的。你控制这个activex控件的来源吗?我会探索其他方法。
    • 是的,我可以完全控制 ActiveX、服务器端代码和客户端操作,因此安全问题或与 IE 的兼容性或任何对我来说都不是问题的问题
    • 在这种情况下,尝试将 activex 部署到客户端并正常进行。如果你不能这样做,我只能看到需要将 activex 控件重新实现为某种 asp.net 控件。
    • 我的activex控件已经是一个.Net控件,也许我应该尝试将我的服务器端activex转换为javascript构建的html图像(在这种情况下是动态的)并处理客户端上的用户输入侧并将其发送回服务器以在服务器activex控件上提交,这是我最初的概念,但它似乎很复杂,因为我正在寻找一个更简单的解决方案。
    【解决方案2】:

    我相信这篇文章“在 Web 表单中托管 Windows 控件”可能会对您有所帮助。

    http://www.4guysfromrolla.com/articles/052604-1.aspx

    不过,我想引用这句话,并牢记这一点:'在 ASP.NET 中托管 Windows 控件有几个值得讨论的限制。首先,它要求客户端计算机至少安装了 .NET 可再发行组件并使用 Internet Explorer 5.01 或更高版本进行浏览。 [...] 其次,ASP.NET 不能托管 Windows 窗体。您需要将这些部分抽象为 Windows 控件。最后,由于 Windows 控件不是可以在服务器上运行的 Web 控件,因此在回发期间无法轻松设置或读取属性。'

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 1970-01-01
      • 2013-01-21
      • 1970-01-01
      • 2011-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多