各位大虾:
我写了一个OCX,打包成internet包,然后放至服务器。客户端浏览器的安全性也设置好了,当客户端第一次用IE打开时是正常的。但当我把此控件修改过,再重新发布后,客户端显示的还是旧的版本页面没有更新。不知如何解决,望大虾赐教。谢谢!

解决方案 »

  1.   

    ActiveX的客户端升级实际是一个很头疼的问题,一般情况下,除非不得已,建议不要使用。你的情况,我估计十有八九是因为控件的版本原因,即你在编译的时候,没有增加控件的版本号,这样的话,客户端认为还是老的控件不需要升级。
    不过,当你升级了版本号之后,随之而来的就是另外两个问题,一个是控件的版本兼容问题,在有些情况下,控件将无法在继续保持2进制兼容,这样的直接后果就是导致你windows系统的DLL Hell;另一个是客户端可能会被安装上同一个控件的多个版本,这一点,在物理文件上不会产生什么作用,因为文件名都一样,但在注册表中会出现多个这个控件,如果你的控件从接口上可以保持前后一致的话,也就是可以保持2进制兼容的方式,那么在客户端不会出现任何问题,但一旦无法保证2进制兼容的时候,在客户端就会出现ActiveX automation错误,对于这个错误,就基本上没有什么解决的办法了,除了清除注册表。
      

  2.   

    还有缓存问题,将客户端的缓存清空,在internet选项,将internet临时文件清空
      

  3.   

    兄弟,在加上如下的代码  codebase="XXX.CAB#version=X.X.X.X"