我们正在努力在网页中使用第三方的ActiveX控件。我们的页面包含用于访问和操作控件的JavaScript。控件的部分功能要求它访问本地文件系统上的文件。
如果我们以编程方式生成页面,则此功能将失败 - ActiveX控件似乎无法访问文件系统。如果我们获取生成的页面源,将其复制到一个静态文件中,并从同一个Web服务器提供该文件,一切都按预期工作 - ActiveX控件从文件系统获取所需的信息,我们就快乐地走了。
我使用JavaScript调试器遍历两个不同的页面,并验证对ActiveX控件的调用具有相同的参数。我已经验证静态页面和动态页面都列在IE的“本地Intranet区域”中,因此它们应该具有相同的安全约束。
我已经使用SysInternals的ProcessMonitor来查看ActiveX控件在系统中正在做什么,以及有什么不同。有趣的是,当对控件的调用成功时,ProcessMonitor跟踪显示控件在何处查询注册表中的文件名,以及访问文件系统。当进程失败时,不存在访问文件系统失败的情况,而是控制从不查询注册表以查找文件名,也从不尝试命中文件系统。
这种控制的供应商很神秘,而且我已经没有尝试过的想法。有什么我应该检查的吗?动态生成的页面和IE或ActiveX控件可能能够检测到的静态页面之间的某些区别,会导致行为发生变化? URI是不同的,静态页面有一个“.html”扩展名....就我所知,其他的不同之处。
任何想法都会受到欢迎......
答案 0 :(得分:0)
我们弄清楚出了什么问题,并有效地发现了第三方ActiveX控件中的错误。
他们有一个功能,他们可以选择性地验证加载控件的页面的URL,或者他们可以使用假设的通配符配置控件以匹配任何URL。供应商与我们合作并使用通配符配置控件,并向我们保证这不是问题所在。
当我们将控件配置中的通配符URL替换为我们的实际URL时,控件开始工作。据我们所知,我们昨天整天都在对抗控件通配符处理中的错误。