2

我有一个应用程序可以截取网页并创建调整大小的图像。该应用程序基本上是加载一个网页,该网页调用一个 ActiveX 以使用 IE 资源加载网页并截取屏幕截图。这个应用程序已经在 Windows Server 2003 上运行了几年,没有出现任何问题。

但是现在我已经将服务器升级到 Windows Server 2008,屏幕截图操作超时。从测试中,我可以看到它成功地截取了 Internet 上托管的任何网页的屏幕截图……除了托管在同一服务器上的页面。

每当它尝试捕获与应用程序托管在同一服务器上的站点上加载的页面时,它就会超时。ESC 被禁用,似乎所有其他权限都可以,即:它适用于远程页面,但适用于主页。

关于什么可能导致这种情况以及如何解决它的任何想法?

在进一步测试之后,我缩小了失败的原因,因为页面是从与截屏相同的服务器上的 MS-SQL 数据库记录中填充的。在远程服务器上生成的相同页面捕获 ok。我进一步确定该错误并不是 ACASystems DLL 所特有的,因为它还会影响另一个用于从网页创建 MHT 文件的 DLL。此 DLL (Chilkat.MHT) 还使用 IE 即时加载和组装网页,然后将其保存为 .mht 文件。

所以这个问题更多地与 IE 在运行 ActiveX 时从 MS-SQL 组装网页有关。但是要解开这个谜团呢?

4

2 回答 2

0

也许是路由问题(DNS/hostfile ..)?页面是否在与 IE 的本地会话中加载?

于 2013-03-22T14:09:54.263 回答
0

如果不编辑 ActiveX 代码,则无法解决此问题。由于有问题的 DLL 是第三方资源,因此无法进行此类编辑。

在测试了 3 种不同的 ActiveX 加载网页(截取屏幕截图或另存为 .mht)后,发现它们在加载同一服务器上查询 SQL 的页面时都失败了。在联系了 3 位 DLL 开发人员后,他们都告诉我们他们的 ActiveX 对 MS-SQL 没有影响。

不幸的是,我们的测试告诉我们并非如此。在这个阶段,我们只能猜测,但是这篇关于进程内与进程外执行的文章可能是相关的。

我们解决此问题的解决方法是组装要从传递给页面的请求查询中捕获的页面,而不是从 SQL 查询中填充。这个替代品完美地工作。

于 2013-03-25T23:35:08.317 回答