我按这文章http://blog.csdn.net/longren629/archive/2008/11/28/3400351.aspx练习(只是没有作最后一步签名,没有签名,影响不大吧),在vpc虚拟机上作的开发,用的是vs2005+windows server 2003 r2能够正常的浏览页面,并点击按钮得到预期的结果。 但在另一台XP的电脑上页面也能显示,但点击按钮会没有反应,在IE的状态栏提供有错,详细信息提示“object doesn't support this property or method” 看起来是没有找到cab中的DLL。排除了路径问题。我已经将cab放到aspx的同一目录下了。 搜了个遍,也没有找到解决方法。请高手指导。谢谢http://forums.microsoft.com/china/ShowPost.aspx?PostID=4268389&SiteID=15

解决方案 »

  1.   

    看看出问题的机器的IE设置(关于js的安全设置),一般状态栏出现的警告是指向Js的(地球人都知道~)
    看看这台机器的IE版本是否是低版本。可能出现较早期的组件编译现在的新方法的问题。
    建议:升级浏览器。试试~~
      

  2.   

    还不行的 话 在那台机器上重新注册framework组件  aspnet_regiis.exe
      

  3.   

    我猜测你的控件没有在客户机注册。cab中要有一个*.inf配置文件,来指导当需要装入哪个COM组件的时候要执行什么(比如进行COM注册)。
    比如你可指定当需要加载(你网页中的)clsid={11111111-2222-3333-4444-555555555555}的控件时,运行setup.exe,并
    在setup.exe中用regasm来注册你的控件:[code=INIFile]
    [version]
        signature="$CHICAGO$"
        AdvancedINF=2.0 
    [Add.Code]
        setup.exe=setup.exe
    [setup.exe]
        file-win32-x86=thiscab
        clsid={11111111-2222-3333-4444-555555555555}
    [/code]当你的ActiveX是本地代码COM时,它一般支持用regsvr32来注册自己,
    这时候你可以用RegisterServer=yes来要求用regsvr32进行注册:[code=INIFile]
    [version] 
        signature="$CHICAGO$"
        AdvancedINF=2.0  [Add.Code]
        polygon.dll=polygon.dll[polygon.dll]
        file-win32-x86=thiscab
        clsid={11111111-2222-3333-4444-000000000000} 
        FileVersion=1,0,0,1 
        RegisterServer=yes
    [/code]具体配置文件可参考MSDN文章:Creating a CAB File 
    现在ActiveX已经比较少用了。对.NET程序来说,可以用sliverlight技术,也可以用直接嵌入Winform控件的方式。
    其中Winform控件将运行在IE浏览器提供的沙盒中,并服从.NET的代码安全管理(code access security)。如果你给Winform控件一定的身份(比如强签名),那么可以在客户机上授权给符合该身份的程序集某些权限。比如可以允许
    它们读写本地文件,创建socket等等。这时,它就跟ActiveX差别不大了。
      

  4.   

    我也怀疑是没有注册,用regsvr32不能注册.net下的dll,现在,我直接用的dll了,没有作成cab,同样的在vpc上能执行,在物理机xp上不能执行。
    XP是正版的,升级到最新的补丁了,并且IE也是保持了更新的。IE的权限设置已经调为最低,并开启了相关的限制。
      

  5.   

    我用regasm来注册activexCalltest.dll也没有成功。请有此经验的朋友指点一下。
      

  6.   


    http://user.qzone.qq.com/3116246/blog/1229694092读上URL后,找到对应.net版本的regasm,我已经注册成功了这个dll,可是IE中仍然没有找到object.
      

  7.   

    关于这个step by step的文章,我后来决定只用前7步,后面的安装和签名的,取消了。故障依旧。
      

  8.   

    regasm /codebase 文件名.dll一切OK。感谢http://user.qzone.qq.com/3116246/blog/1229694092 这文章的作者,他太牛X了,在QQ上毫无保留的帮助,在此感谢他。也感谢很多像他一样为新手解答的牛人们。他不要分,我将分平均分给大家吧。谢谢