我按这文章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
看看这台机器的IE版本是否是低版本。可能出现较早期的组件编译现在的新方法的问题。
建议:升级浏览器。试试~~
比如你可指定当需要加载(你网页中的)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差别不大了。
XP是正版的,升级到最新的补丁了,并且IE也是保持了更新的。IE的权限设置已经调为最低,并开启了相关的限制。
http://user.qzone.qq.com/3116246/blog/1229694092读上URL后,找到对应.net版本的regasm,我已经注册成功了这个dll,可是IE中仍然没有找到object.