Window Server 2008 R2 Exception from HRESULT: 0x800A03EC

本文解决了在Windows2008环境下,使用Excel DCOM组件时出现的HRESULT: 0x800A03EC错误。通过为SYSTEM用户创建必要的Desktop文件夹,使WindowsService能够正常运行。

我们新的生产环境, Windows 2008 64-bit, 自己写的一个 Windows Service, 用到了 Excel 的 DCOM 组件, 服务的执行账户是 SYSTEM 但是在执行中报出了一下错误:

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)

Google 了大半天, 总算是找到了问题所在:

http://social.msdn.microsoft.com/Forums/en-US/innovateonoffice/thread/b81a3c4e-62db-488b-af06-44421818ef91?prof=required

在 Windows 2008 中, 如果以 SYSTEM 用户跑, 系统会去寻找 SYSTEM 这个用户的 Profile 目录, 而这个用户是不能按照交互用户登录的,而且在处理 Excel 文件的过程中, 一个 for SYSTEM 账户 "Desktop" 文件夹似乎是必须的

・Windows 2008 Server x64

  在 "C:\Windows\SysWOW64\config\systemprofile" 下创建 "Desktop" 目录

  C:\Windows\SysWOW64\config\systemprofile\Desktop

・Windows 2008 Server x86

  在 "C:\Windows\config\systemprofile" 下创建 "Desktop" 目录

  C:\Windows\System32\config\systemprofile\Desktop

注意 64-bit 的要在 SysWOW64 下面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值