2016-11-01 4 views
0

azure에서 호스팅되는 웹 응용 프로그램에서 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))

첫째, 그것은 푸른에서 호스팅되는 웹 응용 프로그램에서 IE를 자동화 할 수 있습니까? (어쨌든 그렇게하는 것은 나쁜 생각 인 것 같습니다.) 가능한 경우이 예외를 해결하는 방법.

업데이트 :이 예외가 발생하기 전에 Interop.SHDocVw.dll을 찾을 수 없다는 메시지가 나타납니다. Imbed Interop Types 속성을 false로 설정하고 로컬 복사를 true로 설정하면 예외가 사라집니다.

답변

1

달성하려는 작업은 클라우드 서비스 (웹 및 작업자 역할) 또는 가상 컴퓨터에서만 가능합니다.

웹 응용 프로그램 (App Service Plans에서 실행)은 모든 종류의 COM 상호 작용을 지원하지 않습니다. 그리고 IE 표준 COM 인터페이스와 통신하려고하기 때문에 코드가 실패합니다.

Cloud Services hereVirtual Machines here에 대해 자세히 알아볼 수 있습니다.

+1

웹 역할 만이 아닙니다. Windows 기반 가상 시스템은 물론 작업자 역할도 제공합니다. –

+0

클라우드 서비스에서 com 상호 작용을 허용하려면 특정 설정이 필요합니까? – Kira

+0

일반적으로 그렇지는 않지만 실패 할 경우 인스턴스를 높은 모드로 실행하면 로컬 시스템 계정으로 실행됩니다. 여기를 확인하십시오 : https://blogs.msdn.microsoft.com/farida/2012/05/01/run-the-azure-worker-role-in-elevated-mode-to-register-httplistener/ – astaykov