【问题标题】:Automate Internet Explorer on Azure在 Azure 上自动化 Internet Explorer
【发布时间】:2017-03-14 08:52:03
【问题描述】:

我正在尝试使用 azure 上托管的 Web 应用程序中的 WatiN 库来自动化 Internet Explorer。尝试创建 IE 实例时出现以下异常:

System.Runtime.InteropServices.COMException (0x80080005):正在检索 具有 CLSID 的组件的 COM 类工厂 {0002DF01-0000-0000-C000-000000000046} 由于以下原因而失败 错误:80080005 服务器执行失败(来自 HRESULT 的异常: 0x80080005 (CO_E_SERVER_EXEC_FAILURE))

首先,是否可以在 azure 上托管的 Web 应用程序中自动化 IE? (我知道无论如何这样做是个坏主意)以及如果可能的话如何解决这个异常。

更新:在收到此异常之前,我收到另一个说未找到 Interop.SHDocVw.dll。我将 Imbed Interop Types 属性设置为 false 并将 Copy Local 设置为 true 并且异常消失了。

【问题讨论】:

    标签: c# azure internet-explorer automation


    【解决方案1】:

    您想要实现的目标只能通过云服务(Web 和 Worker 角色)或虚拟机实现。

    Web 应用(在应用服务计划上运行)不支持任何类型的 COM 交互。而且您的代码失败了,因为它试图与 IE 标准 COM 接口进行通信。

    您可以了解更多关于Cloud Services hereVirtual Machines here 的信息。

    【讨论】:

    • 不仅仅是网络角色。 Worker 角色以及基于 Windows 的虚拟机。
    • 是否需要进行任何特定设置才能允许在云服务上进行 com 交互?
    • 通常不会,但如果失败,您可以尝试在提升模式下运行您的实例(这将导致它在本地系统帐户下运行)。在这里查看:blogs.msdn.microsoft.com/farida/2012/05/01/…
    • 将我的应用程序部署到云服务后,我得到了这个异常System.UnauthorizedAccessException: Retrieving the COM class factory for component with CLSID {0002DF01-0000-0000-C000-000000000046} failed due to the following error: 80070005 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
    • 也在提升的运行时上下文中?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 2020-07-11
    • 2012-02-20
    • 1970-01-01
    • 2020-05-13
    相关资源
    最近更新 更多