IIS中使用Microsoft.Office.Interop.Excel

异常1:

检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失 败,原因是出现以下错误: 80080005。

解决方案:

A、 检查IIS发布的网站上的用户组是否有Administrators用户权限

B、 配置COM组件,用win+r命令打开命令运行窗口,输入Dcomcnfg命令,进入组件服务配置界面,找到“Microsoft Excel Application”,配置“安全”和“标识”:

三个都要选择自定义,并配置成everyone,如下操作:

配置“标识”,选择“下列用户”,配置成Administrator用户,密码为该用户的登录密码:

异常2:

RPC 服务器不可用。 (异常来自 HRESULT:0x800706BA)

解决方案:

下面的代码在有些版本的Windows系统是不会抛出异常:

            Excel.Application excleApp = new Excel.Application();
Excel.Workbook workbook = excleApp.Workbooks.Open(reportFilePath);
try
{
//...
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{ workbook.Save();
//资源清理
excleApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(excleApp);
GC.Collect();
}

但是有些Windows版本就会有问题:

会抛出

RPC 服务器不可用。 (异常来自 HRESULT:0x800706BA) 的异常。

查看有问题的Windows 版本的资源管理器会发现:

不管调用Excel.Application excleApp = new Excel.Application()多少次; 都只产生一个EXCEl.ExE进程。

而在不抛出异常的Windows版本上,每调用Excel.Application excleApp = new Excel.Application()一次; 就会产生一个新EXCEl.ExE进程。

如下代码则可以正常运行:

            Excel.Application excleApp = new Excel.Application();
Excel.Workbook workbook = excleApp.Workbooks.Open(reportFilePath);
try
{
WriteExcelReportForSaleProductCashFlow(workbook, createReportParams);
WriteExcelReportForSubjectLv2(excleApp,workbook, createReportParams);
WriteForOwnCashFlowReport(workbook, createReportParams.ProjectSolutionId);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{ workbook.Save();
//资源清理
//excleApp.Quit();
//System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
//System.Runtime.InteropServices.Marshal.ReleaseComObject(excleApp);
GC.Collect();
}

将代码

excleApp.Quit();

注释掉就不会抛出异常:RPC 服务器不可用。 (异常来自 HRESULT:0x800706BA) 的异常。

IIS中使用Microsoft.Office.Interop.Excel 常见问题:RPC 服务器不可用。 (异常来自 HRESULT:0x800706BA) 的异常。等的更多相关文章

  1. Microsoft.Office.Interop.Excel 读取 excel 中的 checkbox 和 radio

    using Excel = Microsoft.Office.Interop.Excel; Excel.Application excelapp = new Excel.Application(); ...

  2. Excel操作 Microsoft.Office.Interop.Excel.dll的使用

    ----转载: http://www.cnblogs.com/lanjun/archive/2012/06/17/2552920.html 先说说题外话,前段时间近一个月,我一直在做单据导入功能,其中 ...

  3. Microsoft.Office.Interop.Excel, Version=12.0.0.0版本高于引用的程序集(已解决)

    Microsoft.Office.Interop.Excel, Version=12.0.0.0版本高于引用的程序集(已解决) 论坛里的帮助:http://bbs.csdn.net/topics/39 ...

  4. 解决方法:未能加载文件或程序集“Microsoft.Office.Interop.Excel。。

    .NET错误提示:未能加载文件或程序集“Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral, PublicKeyToke ...

  5. 使用Microsoft.Office.Interop.Excel.dll 文件来生成excel 文件

    日常工作中经常需要将后台的数据导出成excel  格式,这里通过调用微软提供的类库来生成excel 文件. 具体是引用 了Microsoft.Office.Interop.Excel.dll 类库文件 ...

  6. NPOI写Excel,Microsoft.Office.Interop.excel.dll 转换Excel为PDF

    首先要引用NPOI动态库和Microsoft.Office.Interop.excel.dll (Microsoft.Office.Interop.excel.dll 下载链接 ,下载以后解压文件,把 ...

  7. C# Microsoft.Office.Interop.Excel.ApplicationClass 加载类型库/DLL 时出错

    问题  无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Intero ...

  8. 未能加载文件或程序集“Microsoft.Office.Interop.Excel

    解决方法:未能加载文件或程序集“Microsoft.Office.Interop.Excel...”   2010-07-25 08:06:15   来源:源码之家 站长整理    [大 中 小]   ...

  9. 无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel._Application”

    报错内容如下: 无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的COM对象强制转换为接口类型“Microsoft.Office.Inte ...

随机推荐

  1. Lucene6去掉了Filter但是可以用BooleanQuery实现Filter查询

    Lucene在6.0版本之后彻底废除了Filter的使用,采用BooleanQuery来实现Filter的功能,核心代码如下: TermQuery termQuery = new TermQuery( ...

  2. Html 让文字显示在图片的上面

    如题: 第一种方式便是将 image 作为背景图片,即:background-image:url("......."); 在此可以控制背景图片的横向和纵向的平铺: backgrou ...

  3. 51nod1031(简单斐波拉契数列)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1031 题意:中文题诶- 思路:对于第x块骨牌的情况,我们用a ...

  4. ACM-ICPC 2018 南京赛区网络预赛 Sum

    A square-free integer is an integer which is indivisible by any square number except 11. For example ...

  5. 解决mysql报错:- Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ'

    mysql执行报错: - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated c ...

  6. 【BZOJ3029】守卫者的挑战 [期望DP]

    守卫者的挑战 Time Limit: 2 Sec  Memory Limit: 128 MB[Submit][Status][Discuss] Description 打开了黑魔法师Vani的大门,队 ...

  7. system32下 exe文件作用

    system32下EXE文件的作用说明 A accwiz.exe 辅助功能向导 ahui.exe 应用程序兼容用户界面 alg.exe 为 Internet 连接共享和 Internet 连接防火墙提 ...

  8. VS mfc MessageBox() 使用英文显示

    转载:http://blog.csdn.net/guoyk1990/article/details/44337249 由于特殊原因我们需要将 MessageBox 或 Dialog 的按钮“确定”.“ ...

  9. udp端口测试连接

    udp端口测试连接 http://www.361way.com/nc-udp-port/2949.html

  10. 智联招聘的python岗位数据结巴分词(一)

    如何获取数据点击这里 下载之后的文件名为:all_results.csv 数据样式大概这样.然后下面我分析的是工作要求  也就是那边的绿框那一列. import csv import os impor ...