none
关于activeX控件在不同版本的.net framework环境下运行时不兼容的问题 RRS feed

  • 问题

  • 问题描述:
    用.net 1.1写的某系统,需要在里面嵌入另一个系统提供的web页面。该页面上有一个使用.net 2.0写的activeX控件。该网页单独在.net2.0环境下打开时一切正常。
    当客户端同时装有.net 1.1和.net 2.0时,发现打开网页时无法加载这个activeX控件,显示为一个“X”。

    经过测试,发现卸载掉.net 1.1,让客户端仅保留.net 2.0时,就能正常打开该网页。也就是说如果在.net1.1的程序中加载这个网页,就会默认用.net1.1框架来加载这个activeX控件,导致控件无法使用。
    但是原程序也不能用.net2.0来加载,否则也会有部分功能无法使用。

    目前要协调两方供应商,两方均声称目前想到的办法只有用对方的框架重新开发。两方的程序均较为庞大,重新开发旷日持久,而且基本不可能实现原有的功能。

    请问有什么途径可以指定该控件在客户机上的.net2.0环境中运行,谢谢各位。

    PS:http://social.msdn.microsoft.com/Forums/officeapps/zh-CN/c97accc2-b080-4ffc-8123-1bfeee3dc43c/webactivexnet-framework-1120?forum=2212

    经查找,该问题和本文的情况很相似,不过是反过来在1.1的环境中控制2.0的控件,请问同样的办法是否可行,谢谢各位。

    2014年3月31日 5:00

答案

  • 你好:

    欢迎来到MSDN中文论坛!

    我认为该帖子中的办法是否可行需要你自己去测试和验证。

    请问在.net1.1开发的系统中是通过什么方式加载这个页面的?是WebBrowser控件吗?如果是的话那么我觉得没有办法去解决,据我所知WebBrowser控件都是基于宿主程序的.net版本的。

    但是我认为并没有必要去重新开发系统,可以尝试一下将两个系统同时升级到同一个.net framework版本:如何:更改目标.NET Framework版本

    我觉得两个大型系统需要整合的话最好遵循SOA的一般开发原则,通过创建服务来互相调用,而不是通过这种方式。.net framework发展至今已经达到4.5.1版本了,如果系统一直保持1.1,2.0版本,并且又不通过服务互相调用,和新的程序交互过程中必然会出现兼容问题,后期维护的成本肯定也是很高的。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年4月1日 7:14
    版主