有2个WEB站点,均使用同一型号读卡器(国腾)2个站点都引入了同一个的CAB包,目前如果打开其中任意一个,均可以使用。但如果再打开另外一个网站,结果新开的可以用,原来开的不能用,如果刷新了第一个打开的网站,则又可以用了,但第2个开的又不能用了,感觉好像是给劫持了。
//这是引用
<OBJECT Name="GT2ICROCX" width="0" height="0" CLASSID="CLSID:220C3AD1-5E9D-4B06-870F-E34662E2DFEA" CODEBASE="IdrOcx.cab#version=1,0,1,2"></OBJECT>
//设置回调函数
<SCRIPT LANGUAGE=javascript FOR=GT2ICROCX EVENT=GetData>MyGetData()</SCRIPT>
    
<SCRIPT LANGUAGE=javascript FOR=GT2ICROCX EVENT=GetErrMsg>MyGetErrMsg()</SCRIPT>
    
<SCRIPT LANGUAGE=javascript FOR=GT2ICROCX EVENT=ClearData>MyClearData()</SCRIPT>就仅仅在不同站点改动回调函数的函数名如MyGetData()改为MyGetData1(),仍一样。现在想做到刷一次卡,2个站点都能调用。

解决方案 »

  1.   

    看lz的说法,应该是2个读卡器控件使用的同一个唯一的id。导致打开后就默认使用当前的
    应该是有一个标示的,就像有些控件如果id相同了。改变一个另一个页变了
      

  2.   

    主要是CAB里控件没有考虑多线程的问题。
    如果控件对每个网站域名开一个线程处理,就可以同时应对这样多个网站的局面了。
    解决方法有两个:
    一是找CAB制作厂商反映问题,重新制作。
    二是分析一下如你所说的使用现象,对于一般用户来说是不是常见的。只要用户不怎么需要同时用这两个网站,而是你们开发测试时才碰到的现象,那当然就忍忍吧,除非让CAB厂商更改软件不需要再付钱(从该软件原功能要求来说,似乎涉及不到这个现象)。
      

  3.   

    其实你这是对资源的锁定,你的软件应该不是时时刻刻都要读取数据的,你可以在需要读取的时候打开cba资源,读取完毕就关掉,这样就不会影响另外一个系统使用这个资源了,而且当两个同使用时,你可以将一个挂起,等待另一个关闭即可。不过这样实现就看你能否自由加载和卸载那个链接资源了。
      

  4.   


    是不是只有一个读卡器,刷一次卡需要同时向2个站点提交?为什么不直接让其中一个站作为主站点。
    同时显示2个站点的表单及内容,刷卡时同时向2个站点提交(用Ajax可以把结果显示在同一页上)。
    使用只打开主站点。如果是2个同样的读卡器,那还不如考虑减少1个。
    在页面上加个选择项,手动选择下次读卡向哪个站提交。
      

  5.   

    我没办法修改的是主站,已经挂有读卡器的CAB包,站点我没权限修改。就因为主站有不合适工作的缺陷,所以做个辅助系统(数据库也是独立的,我也没办法读取主站数据库。另外也套用主站的CAB包)。读卡器就一个。也做不到刷卡同时向2个站点提交(后刷新劫持了)。太难受咯。