2016-11-01 61 views
0

我試圖使用azure上託管的Web應用程序中的WatiN庫自動運行Internet Explorer。我越來越想創建IE瀏覽器的實例時以下異常:在Azure上自動運行Internet Explorer

System.Runtime.InteropServices.COMException (0x80080005): Retrieving the COM class factory for component with CLSID {0002DF01-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE))

首先,是有可能的是在Azure上託管的Web應用程序自動化IE? (無論如何我都知道這是一個糟糕的主意),如果可能的話如何解決這個異常。

更新:之前得到這個異常我得到另一個說Interop.SHDocVw.dll沒有找到。我將Imbed Interop Types屬性設置爲false,將Copy Local設置爲true,並且異常消失。

回答

1

您只有通過雲服務(Web和Worker角色)或虛擬機才能實現您的目標。

Web應用程序(運行在App Service計劃中)不支持任何類型的COM交互。而且你的代碼失敗了,因爲它試圖與IE標準的COM接口進行通信。

您可以瞭解更多關於Cloud Services hereVirtual Machines here的信息。

+1

不只是網絡角色。工人角色以及基於Windows的虛擬機。 –

+0

爲了在Cloud Service上允許com交互,我需要做什麼具體設置? – Kira

+0

通常不會,但如果失敗,您可以嘗試在高架模式下運行您的實例(這會導致它在本地系統帳戶下運行)。點擊這裏:https://blogs.msdn.microsoft.com/farida/2012/05/01/run-the-azure-worker-role-in-elevated-mode-to-register-httplistener/ – astaykov

相關問題