We have an app that takes a screenshot of web pages and creates a resized image. The app is basically loading a web page that calls an ActiveX to load a web page using IE resources and take the screenshot. This app has been running on a Windows Server 2003 without any problems for a couple of years.
But now that we have upgraded to Windows Server 2008, the screenshot action is timing out. From tests I can see that it successfully takes a screenshot of any web page hosted on the Internet... but it is failing when capturing any pages hosted on the same server that call MS-SQL.
From testing I have narrowed down the reason for failure being due to the page being populated from a MS-SQL database record on the same server as the one taking the screenshot. The same page generated on a remote server captures ok. I have further established that the error is not peculiar to the ACASystems DLL that we use because it also affects another DLL for creating MHT files from web pages. This DLL (Chilkat.MHT) also uses IE to load and assemble the web page on the fly and then saves it as a.mht file.
Any ideas as to what can be causing this and how to fix it?
The capture DLL and site are all set to 32-bit. There is no conflict there because the DLL will capture a page on its own site when that page does not call MS-SQL. It's only when the page to be captured is being populated from SQL an query.
I did this afternoon find a work around for this problem. What I did was populate a form from the database and then submit all page input via the form. So the page that assembles and captures the result no longer queries against the database. Instead it populates the page from request input. This seems to work.
But It would be nice to know what the issue is. This same app and site have been running on Windows Server 2003 for 4 years without a problem.
There is no solution for this without editing the ActiveX code. Since the DLLs in question are third party resources, such editing is not possible.
After testing 3 different ActiveX that load a web page that either take a screenshot or save as .mht, it was found that they all failed when loading a page that was querying SQL on the same server. After contacting the 3 DLL developers we were informed by all of them that their ActiveX has no impact on MS-SQL.
Unfortunately, our tests tell us otherwise. At this stage we are left guessing however this article about in-process vs out-process execution may be related... [consultingblogs.emc.com ]
The workaround for us to solve this problem was to assemble the page to be captured from request queries passed to the page rather than populate from SQL queries. This alternate works perfectly.