1

我从 .NET 2.0 升级到 .NET 4.0 运行时的 Web 应用程序中的 ActiveX 控件存在问题。

情况如下:

  1. 该应用程序的 GUI 与以前的版本基本没有变化。
  2. 新旧版本运行在同一个网站下的两个不同的虚拟目录应用程序下。
  3. OLD 应用程序上的用户可以看到 ActiveX 签名板控件。
  4. 新应用程序上的用户看不到该 ActiveX 签名控件(改为看到红色 x)
  5. 返回到两个应用程序上的浏览器 (Internet Explorer) 的 ActiveX 控件 HTML 完全相同。
  6. 无法在新应用程序上看到 ActiveX 控件的用户正在尝试从同一台计算机访问新应用程序并像访问 dol 应用程序时一样登录。
  7. 开发人员(我)可以从开发 PC 上看到旧应用程序和新应用程序上的 ActiveX 控件,但不能从生产 PC 上看到,我得到的结果与最终用户相同。
  8. 将站点添加到受信任域并不能解决问题。

我的问题是:当两个 URL 都在同一个域下,由同一个网站提供服务并通过不同的虚拟应用程序与不同的.NET版本?

  • 我会丢失发送到浏览器的库吗?
  • 我是否缺少浏览器上的安全设置。
  • 我是否缺少支持 ActiveX 控件所需的支持库或其他对象?

我希望我已经提供了解决此问题所需的一切。如果没有请询问。ActiveX 控件和相关问题不是我的强项,这个问题已经困扰了我好几个星期,我已经在网上搜索了解决方案。感谢您的帮助,在此先感谢您。

添加:

这是旧应用程序中有效的对象标签。

<OBJECT classid=clsid:69A40DA3-4D42-11D0-86B0-0000C025864A height=75 id=SigPlus1 name=SigPlus1 style="HEIGHT:148px;WIDTH:250px;LEFT:0px;TOP:0px; background-color:#efefef;"> <PARAM NAME="_Version" VALUE="131095"> <PARAM NAME="_ExtentX" VALUE="4842"> <PARAM NAME="_ExtentY" VALUE="1323"> <PARAM NAME="_StockProps" VALUE="0"> </OBJECT>

更新后的应用程序中的对象标签仅适用于我的开发计算机:

<object classid="clsid:69A40DA3-4D42-11D0-86B0-0000C025864A" height="75" id="SigPlus1" name="SigPlus1" style="height:148px;width:250px;left:0px;top:0px;background-color:#efefef;"> <param name="_Version" value="131095"/> <param name="_ExtentX" value="4842"/> <param name="_ExtentY" value="1323"/> <param name="_StockProps" value="0"/> </object>

4

1 回答 1

1

在检查了旧应用程序的代码后,发现 ActiveX 控件被隐藏了。当我将图层设置为“显示”控件时,我发现不仅控件丢失了,而且访问它们的 JavaScript 也被破坏了。

我永远不应该相信原始应用程序是正确的。

事实证明,用于访问 Web 应用程序的生产 PC 已在几个月前被更换,用户并不知道该应用程序已损坏 - 可怕。ActiveX 软件从未安装在新的客户端 PC 上,这就是缺少 ActiveX 控件的原因。

在客户端 PC 上安装软件解决了该问题。

于 2013-10-10T01:43:25.893 回答