解决64位windows server 2008上调用Excel组件出现0x800A03EC错误
来源:互联网 发布:淘宝上哪家店铺包包好 编辑:程序博客网 时间:2024/06/03 18:09
开发机器为windows server 2003,安装了office 2003,从.aspx文件中调用excel处理xls文件。下面是部分代码:
Try oExcel = New Microsoft.Office.Interop.Excel.Application oExcel.DisplayAlerts = False oExcel.Visible = False tmpVersion = oExcel.Version oExcel.Workbooks.Open(tmpDesFile) oWorkbook = oExcel.Workbooks(1) '1 is Workbook1 oWorksheet = oWorkbook.Worksheets(1) '1 is Sheet1 tmpRange = oWorksheet.Cells.Range(oWorksheet.Cells(1, 1), oWorksheet.Cells(1, tmpColCount)) tmpAry = tmpRange.Value2 For rId = LBound(tmpAry, 1) To UBound(tmpAry, 1) For fId = LBound(tmpAry, 2) To UBound(tmpAry, 2) tmpValue = tmpAry(rId, fId) Response.Write(tmpValue & "|") Next Response.Write("<br/>") Next oWorkbook.Close(False) Catch ex As Exception tmpResult = "Error: " & ex.ToString() 'Error: has error, return error description Finally oWorksheet = Nothing oWorkbook = Nothing If Not IsNothing(oExcel) Then oExcel.Quit() End If oExcel = Nothing GC.Collect() GC.WaitForPendingFinalizers() 'Wait excel real quit End Try
确认无问题后上传到服务器,运行后却报错:
System.Runtime.InteropServices.COMException (0x800A03EC): Exception from HRESULT: 0x800A03EC at Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin, Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad) at ASP.test1_aspx.TestExcel() in C:\Test\site\Test1.aspx:line 53
计算机-默认 权限设置并未从地址 LocalHost(使用 LRPC) 使用 CLSID {000C101C-0000-0000-C000-000000000046} 和 APPID {000C101C-0000-0000-C000-000000000046} 向用户 IIS APPPOOL\Test SID (S-1-5-82-2448291975-4234089047-1793108301-2903605371-3779044736)授予对 COM 服务器应用程序的 本地 激活 权限。此安全权限可以使用组件服务管理工具进行修改。
查询注册表后发现CLSID:000C101C-0000-0000-C000-000000000046是一个服务,服务名称是MSIServer,显示名称是Windows Installer.
打开组件服务,准备修改MSIServer的激活权限,确发现所有字段都是只读的。此组件在32位版windows server上字段是可读写的。此路不通。
后经过反复摸索,发现这是Office 2003的一个Bug。
解决方法如下:
配置好相关目录的读写权限与组件服务管理工具中Excel的相关权限后,需要建立如下目录:
C:\Windows\SysWOW64\config\systemprofile\Desktop。
自此,问题解决。
- 解决64位windows server 2008上调用Excel组件出现0x800A03EC错误
- 解决64位windows server 2008上调用Excel组件出现0x800A03EC错误
- HRESULT: 0x800A03EC Windows Server 2008 C# 导出 Excel
- Server 2008 (IIS7) HRESULT: 0x800A03EC 错误问题解决办法
- 在Windows Server 2008 R2(64位)上安装SharePoint 2007出现的一个错误的解决方法
- C# 导出数据到Excel出现“异常来自 HRESULT:0x800A03EC”的错误
- 关于asp.net导出Excel出现“异常来自 HRESULT:0x800A03EC”错误解决方法
- 服务器上无法调用Office组件的解决方法(HRESULT:0X800A03EC异常)
- Asp 出现Microsoft JScript 编译错误 (0x800A03EC) 缺少 ';'解决办法
- 解决SQL Server 2008安装时出现“不能在控件上调用 Invoke 或 BeginInvoke”错误的方法
- windows server 2008 x6 System.Runtime.InteropServices.COMException (0x800A03EC)處理方法
- windows server 2008 64 位 上安装 postgreSQL 、 openbravo 报错解决
- 如何解决在Windows Server 2008 R2 上安装证书服务重启后出现 CertificationAuthority 91错误事件
- WINDOWS SERVER 2003 上出现 超过响应缓冲区限制 错误,如何解决?
- 在Windows Server 2008 X64中通过.NET程序调用32位com组件
- windows server 2008中读取Microsoft Excel Application COM组件问题的解决方式
- 解决Windows 2008 Server 64位,.NET访问Oracle问题
- 解决SQL Server 2008安装时出现不能在控件上调用 Invoke 或 BeginInvoke错误或者需要重启N次后还提示需要重启的方法
- 16-3 例13.2 运行
- 23种设计模式(12):策略模式
- HDU 1079 - Calendar Game
- 23种设计模式(13):迭代器模式
- java.net.SocketException四大异常解决方案
- 解决64位windows server 2008上调用Excel组件出现0x800A03EC错误
- 栈的基本操作(采用顺序存储结构)
- 块设备驱动实战高级篇三(在内核块设备中实战内存管理)
- Java Volatile用法
- 23种设计模式(14):解释器模式
- 第十六周项目1 再涨工资
- 思想上移 行为下移---抽象工厂+反射+配置文件
- 23种设计模式(15):备忘录模式
- 欧拉角的旋转、转换