【问题标题】:Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE) in c# when making excel application来自 HRESULT 的异常:制作 excel 应用程序时 c# 中的 0x80080005 (CO_E_SERVER_EXEC_FAILURE)
【发布时间】:2015-06-28 05:31:59
【问题描述】:

我使用 c# 在 excel 中制作宏,但在我的这行代码中

oExcel = new Excel.Application()

我有这个错误

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

我使用 IIS 7、visual studio2013(使用 asp.net)和 windows server 2008

我尝试了这种方法,但对我不起作用: 运行>组件服务>计算机>我的电脑>DCOM配置> Microsoft Excel应用程序>右键单击>属性>安全选项卡>让每个人都可以完全控制

是不是windows的权限?

【问题讨论】:

    标签: c# asp.net windows excel vba


    【解决方案1】:

    来自Microsoft's support page "Considerations for server-side Automation of Office"

    Microsoft 目前不推荐也不支持任何无人值守、非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)的 Microsoft Office 应用程序自动化,因为 Office 可能表现出不稳定Office 在此环境中运行时出现的行为和/或死锁。

    上述文章还特别指出了您在尝试在服务器端应用程序中使用自动化时可能发生的错误。

    Excel 自动化根本不应该在 Web 应用程序中使用。目前的建议是改用OpenXML SDK

    【讨论】:

    • 感谢您的回复,但是我该如何使用这个 OpenXML SDK 呢?我想在 asp.net c# 中从服务器创建宏并将其注入 excel,使用此代码 Excel = new Microsoft.Office.Interop.Excel.Application(); // 添加工作簿。 oBook = oExcel.Workbooks.Add(oMissing); // 创建一个新的 VBA 代码模块。 oModule = oBook.VBProject.VBComponents.Add(VBIDE.vbext_ComponentType.vbext_ct_StdModule);如何使用我想要的 OpenXML SDK?
    • 您可以使用 VbaProjectPartVbaDataPart 将宏添加到 Excel 文档 (.xlsm)。
    • 我不知道如何使用 VbaProjectPart 和 VbaDataPart 创建调用存储过程的宏,是否有任何示例代码可以做到这一点?
    猜你喜欢
    • 2013-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多