【问题标题】:Running an ASP.NET application that uses Excel on a Windows Server在 Windows 服务器上运行使用 Excel 的 ASP.NET 应用程序
【发布时间】:2014-11-20 14:13:10
【问题描述】:

我在本地机器上使用 microsoft office interop excel 开发了一个 asp.net 应用程序,一切正常,生成了一个 excel 文件。

当我在我的服务器上部署应用程序并运行它时,我收到以下异常:

Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} 
failed due to the following error: 80040154 Class not registered 
(Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

我在论坛上做了一些研究,我知道这可能是因为服务器上缺少 excel,但是我无法找到合适的解决方案,因为我知道在服务器上安装 excel 是不可能的。并且还知道我想将互操作作为我的库。

有人有解决办法吗?

【问题讨论】:

  • Office 互操作要求将 office 安装在运行代码的机器上,没有它您的代码将无法运行。
  • 另外,取决于服务器操作系统,可能需要跳过很多环节才能让 Excel 在调用时真正正确启动。 Windows 2012 被特别关闭,我们只能让它以服务用户身份登录到盒子中工作。这不好,导致我们使用另一种解决方案来处理 Excel 文件。

标签: c# asp.net excel


【解决方案1】:

首先,无论您想要做什么,都尽量不要在 ASP.NET 中使用 Excel(或任何 Office)互操作。 Microsoft strongly discourages 它,因为它可能无法按您的预期工作。

在没有“客户端应用程序”Excel 的情况下,有很多可能性可以做到这一点,例如 EPPlus

其次,您的代码的问题是缺少 Office 安装或 Office 版本错误(也可以考虑 32 位或 64 位平台版本)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 2020-04-11
    • 2014-03-02
    • 2012-12-12
    • 2016-05-29
    相关资源
    最近更新 更多