2013-03-13 48 views
2

我有一個應用程序,它會截取網頁並創建調整大小的圖像。該應用程序基本上加載了一個調用ActiveX的網頁,以使用IE資源加載網頁並截取屏幕截圖。這個應用程序已經在Windows Server 2003上運行了幾年,沒有任何問題。ActiveX無法屏幕捕獲託管在同一服務器上的頁面

但現在我已將服務器升級到Windows Server 2008,屏幕截圖操作已超時。從測試中,我可以看到它成功地截取了互聯網上託管的任何網頁的屏幕截圖...除了在同一臺服務器上託管的頁面之外。

每當它嘗試捕獲與應用程序在同一服務器上託管的網站上加載的頁面時,它就會超時。 ESC被禁用,似乎所有其他權限都可以使用,即:它適用於遠程頁面,但適用於主頁。

有什麼想法可以造成這種情況,以及如何解決它?

經過進一步測試,我已經縮小了與截取屏幕截圖的服務器在同一臺服務器上從MS-SQL數據庫記錄中彈出頁面導致失敗的原因。在遠程服務器上生成的相同頁面捕獲正常。我進一步確定,錯誤不是ACASystems DLL特有的,因爲它也會影響另一個用於從網頁創建MHT文件的DLL。該DLL(Chilkat.MHT)也使用IE來動態加載和組裝網頁,然後將其保存爲a.mht文件。

所以這個問題更多地涉及IE在運行ActiveX時從MS-SQL組裝網頁的問題。但要解決這個謎?

+0

源代碼到ActiveX控件?沒有這個,我不明白這個問題怎麼可能得到回答。我無法想象我的頭腦會有什麼問題,但是有一種方法可以讓貓變好,而在編程中,通常有幾十種方法可以完成任何給定的任務。選擇哪種方式與IE交互,我無法猜測。 – Pete 2013-03-19 20:35:21

+0

沒有源代碼可用,因爲它是http://www.acasystems.com使用的第三方插件。我已經在Win2003上成功使用了4年,而現在在Win2008上它失敗了。我做了一些測試,它在遠程服務器上捕獲頁面時起作用。在本地服務器上捕獲頁面時,它也可以工作。但是在從MS-SQL數據庫提取記錄的本地服務器上捕獲頁面時失敗。如果我能記得4年前我是如何解決這個問題的。 – WilliamK 2013-03-20 04:05:25

回答

0

沒有編輯ActiveX代碼沒有解決方案。由於所討論的DLL是第三方資源,所以這種編輯是不可能的。

在測試3個不同的ActiveX加載網頁的截圖或保存爲.mht時,發現它們在加載在同一服務器上查詢SQL的頁面時都失敗。在與3個DLL開發人員聯繫之後,我們被所有人告知他們的ActiveX對MS-SQL沒有影響。

不幸的是,我們的測試告訴我們,否則。在這個階段,我們仍然猜測,然而這篇文章可能與in-process vs out-process execution有關。

解決此問題的解決方法是組裝要從傳遞到頁面的請求查詢中捕獲的頁面,而不是從SQL查詢填充。這個替代品完美地運作

0

也許路由問題(DNS/hostfile ..)?該頁面是否與IE瀏覽器進行本地會話?

+0

什麼意思?這個問題似乎是在同一臺服務器上運行ActiveX,從MS-SQL中彈出頁面。 – WilliamK 2013-03-23 23:38:11