在IIS7中打开Excel 2010工作簿,原因“Exception from HRESULT: 0x800a03ec”

本文关键字:from Exception HRESULT 0x800a03ec 原因 IIS7 Excel 工作簿 2010 | 更新日期: 2023-09-27 18:12:58

我写了下面的代码来打开一个excel文件:

    private readonly object _missing = Type.Missing;
    private IEnumerable<CellModel> GetUsedCells(string fileName)
    {
        SetNewCurrentCulture();//set "en-US" culture
        var application = new Application();
        var workbooks = application.Workbooks;
        Workbook workbook = null;
        try
        {
            workbook = workbooks
                .Open(fileName,
                      0, false, _missing, "", "",
                      true, XlPlatform.xlWindows, _missing, false, false,
                      _missing, false, false, XlCorruptLoad.xlNormalLoad
                );
        }
        finally
        {
            //realocate memory
            if(workbook != null)
            {
                ReleaseComObject(workbook);
                workbook = null;
            }
            workbooks.Close();
            ReleaseComObject(workbooks);
            workbooks = null;
            application.Quit();
            ReleaseComObject(application);
            application = null;
            GC.GetTotalMemory(false);
            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();
            GC.GetTotalMemory(true);
            ResetCurrentCulture();//reset old culture
        }
    }

并在打开方法中发生此错误:"Exception from HRESULT: 0x800A03EC"

指出:

  • 我使用vs2012,我的项目的目标框架是4,Microsoft.Office.Interop.Excel的版本是14.0.0.0

  • 服务器信息:Windows Server 2008 32位,IIS7, Excel 2010

  • 我在"C:'Windows'System32'config'systemprofile"中创建桌面文件夹,并设置权限为"网络服务"answers"用户"

  • 更改"Microsoft Excel Application"中的DCOM配置权限并选择"交互式用户"

  • 为"C:'Windows'Temp"设置"Network Services"answers"Users"权限

我很困惑。救救我吧!

在IIS7中打开Excel 2010工作簿,原因“Exception from HRESULT: 0x800a03ec”

ms在服务器场景下不支持互操作

有许多选项可以读取/编辑/创建Excel文件,而无需在服务器上互操作/安装Excel:

MS提供免费的OpenXML SDK V 2.0 -参见http://msdn.microsoft.com/en-us/library/bb448854%28office.14%29.aspx(仅限XLSX)

可以读写所有MS Office文件(包括Excel)。

另一个免费选项见http://www.codeproject.com/KB/office/OpenXML.aspx(仅限XLSX)

如果你需要更多像处理旧的Excel版本(如XLS,而不仅仅是XLSX),渲染,创建pdf,公式等,那么有不同的免费和商业库,如ClosedXML(免费,仅XLSX), EPPlus(免费,仅XLSX), Aspose。单元格,SpreadsheetGear, LibXL和Flexcel等