客户端通过web访问tomcat服务器上的ocx控件提示“对象不支持此属性或方法”

qq_36659966 2017-03-14 02:01:52
最终目的:
客户端PC通过web访问服务器的ip,调用服务器端的ocx控件,读取连接在服务器端的读卡设备,进行读卡,通过web得到返回的卡中的信息。

现象描述:
用MFC开发的ocx控件
1.本地直接在html中调用ocx控件成功。
2.配置部署了tomcat服务器,从本地的IE中访问http://localhost也可以成功调用ocx控件。
3.从其他的PC通过服务器的ip去访问的时候,无法调用ocx控件,提示“对象不支持此属性或方法”。

问题:
1.此种情况下,应该只是通过web中的ocx控件访问读卡设备,不用客户端下载ocx控件吧?
2.是否需要对ocx控件进行数字签名?之后是否要打包成CAB?如果需要,那么最后的CAB文件是否需要放在tomcat的webapps目录下?ocx控件有classid,那么打包生成的CAB文件是否有不同的classid?然后又是如何调用这个CAB的?

希望做过类似工作的前辈给予指导,不胜感激!!!
...全文
1359 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mr-殇 2017-08-24
  • 打赏
  • 举报
回复
一个文件,调用ocx文件。就是那个myocx.cab。 之后我访问这个路径F:\HBuilderWorkSpace\RFIDtest\index.html可以正常使用使用,但是访问第二个路径http://127.0.0.1:8020/RFIDtest/index.html?__hbt=1503544320507就不好使, 目录结构index.html和myocx同级目录。 classid="clsid:9D0C4785-4919-4AF2-AD82-2A92D2AA3456" width=0 height=0 id="myocx" codebase="myocx.cab" codebase改过成F:\HBuilderWorkSpace\RFIDtes下的,也改成过http://127.0.0.1:8020/RFIDtest下的,都是原状态,就指教。
qq_36659966 2017-03-24
  • 打赏
  • 举报
回复
感谢大家的回答,我已经搞定了。 开发好了ocx控件,需要打包成cab,然后进行代码认证签名,将cab文件放在tomcat的index.html同一路径下。客户端通过web访问服务器的时候,由于这边的代码认证签名是自己用signtools工具签名的,没有经过微软的正式证书签名,所以要将客户端IE浏览器的安全等级将到最低,添加服务器地址为信任站点,然后访问的时候,才可以下载服务器上面的cab文件并安装(即注册ocx控件)。 关于读卡的流程,我之前弄错了,由于ocx控件是在客户端运行的,所以ocx控件只需要做socket通信(我用的是Tcp协议)即可,即发送请求给服务器,服务器端运行后台程序,监听对应的端口,当有请求就开始读卡,并把读卡的结果发送给请求方。
MildSong 2017-03-22
  • 打赏
  • 举报
回复
我觉得是楼主有点儿混淆了 如果控件放在服务器端(Tomcat)那你需要写java程序来调用这个ocx,这个跟浏览器的安全设置什么的没有任何关系 浏览器端通过http访问相应的java接口获取调用结果并返回。 如果在浏览器端调用这个ocx,则需要设置IE的activex执行权限(IE的安全设置),然后使用JS直接调用ocx中的接口, 这时候就跟WebServer没有任何关系了。 Good Luck!
zhujinqiang 2017-03-20
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
在64位Windows下: 64位exe和dll在目录c:\windows\system32目录下; 32位exe和dll在目录c:\windows\syswow64目录下; 所以要注意: 在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。 且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
yjgyy 2017-03-19
  • 打赏
  • 举报
回复
据我所知,ocx是个本地化的东西吧!在网上用需要打包成cab,其他机器访问的时候需要安装这个cab文件,即本地计算机注册这个ocx控件!cab的路径根据具体你网页的位置来放!
赵4老师 2017-03-15
  • 打赏
  • 举报
回复
在64位Windows下: 64位exe和dll在目录c:\windows\system32目录下; 32位exe和dll在目录c:\windows\syswow64目录下; 所以要注意: 在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。 且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧