打开 excel 错误:System.Runtime.InteropServices.COMException (0x80080005): Retrieving the COM class factory for component with CLSID

use*_*518 3 .net c# excel

我有一个 C# .net 网络应用程序。我希望用户单击网页上的按钮,服务器打开 Excel 电子表格并向其中写入数据,以及用户保存文档。这在本地使用 Visual Studio 2010 和 Office 2010 工作。但是,在我的服务器上,我收到此错误:

System.Runtime.InteropServices.COMException (0x80080005):检索 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件的 COM 类工厂由于以下错误而失败:80080005 Serverx0RES_EVER_EX0SER_8000E_EXER_800800000E_EXER_8008000050 ))。

我已经研究并发现了大量答案,说明打开 dcomconfig 并将具有权限的用户添加到 Microsoft Excel 应用程序。我的网站设置为直通安全,所以我添加了自己;我是服务器的管理员,所以我确保管理员可以访问;我还添加了网络服务的应用程序池默认值;还有 ASP.NET 机器帐户;并且为了以防万一,添加了应用程序在连接到数据库时使用的帐户。我仍然得到完全相同的错误。

我的服务器是 64 位,Office 2007,IIS 7。

我的代码是:

    {
        try
        {
            Excel.Application xXL = null;
            Excel.Workbook xWB = null;
            Excel.Worksheet xSheet = null;
            xXL = new Excel.Application();
        }
        catch (Exception ex)
        {
            Response.Write(ex.ToString());
        }
    }
Run Code Online (Sandbox Code Playgroud)

小智 5

  1. 在 DCOMCNFG 中,右键单击我的电脑并选择属性。
  2. 转到组件 /MyComputer/DCOMConfig
  3. 转到 Microsoft Excel 应用程序属性安全性
  4. 在启动和激活权限中,单击“自定义”并向其添加网络服务并为其授予“本地启动”和“本地激活”权限。给予相同的访问权限和配置权限按确定,就是这样。我现在可以运行我的应用程序了。

  • 对于 x86 安装 Office 的 x64 计算机,您可能需要运行“%windir%\SysWOW64\mmc comexp.msc /32”以访问 x86 版本的 DCOMCNFG (10认同)