昨天,组里一个小朋友告诉我,他写的报表生成服务中无法打开一个已经存在的Excel 2007文件,他的开发环境是Win7、Visual Studio .Net 2008(Windows Server 2008下同样存在此问题)。比较奇怪的是,Excel Automation对象是可以实例化的,但是在执行Workbooks.Open时抛出异常如下:

Microsoft Office Excel 不能访问文件“a.xls”。 可能的原因有:

• 文件名称或路径不存在。
• 文件正被其他程序使用。
• 您正要保存的工作簿与当前打开的工作簿同名。_Microsoft Office Excel_   在 TemplateExcelFileExporter.Create(DataSet ds, String fullName) 位置 E:\Demos\ExportService\ExportService\Class1.cs:行号 263
   在 ExportService.Service1.OnStart(String[] args) 位置 E:\Demos\ExportService\ExportService\Service1.cs:行号 30

事实上,a.xls文件是存在的,而同样的代码在非Service程序是正常的,且Service部署到Windows Server 2003上运行正常。我不得不怀疑是权限问题,服务是以Local System运行的,在给工作目录加上了相应的权限后发现问题依旧。无奈,上网去转了一圈,找到了一个解决方案,以下是其中关键的部分:

This solution is ...

・Windows 2008 Server x64
  Please make this folder.

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

・Windows 2008 Server x86

Please make this folder.

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

...instead of dcomcnfg.exe.

This operation took away office automation problems in my system.

A Desktop folder seems to be necessary in the systemprofile folder to open file by Excel.

It disappears from Windows2008, Windows2003 had the folder,
and I think it cause this error.

虽然问题解决了,但是为什么在X:\Windows\System32\config\systemprofile目录下创建名为Desktop目录即可解决问题,这个还不是很清楚。继续查了一些资料,应该还是权限的问题,因为无论Windows Service运行在哪个帐号下,它所创建的文件的Owner都是Administrator,因此Excel无法打开此文件。但为啥一定要建一个空的Desktop目录,仍未找到答案。如果哪位高价知道,请不吝赐教。

转载于:https://www.cnblogs.com/TonyJoule/archive/2010/05/18/1737973.html

Win7、Windows Server 2008下无法在Windows Service中打开一个已经存在的Excel 2007文件问题的解决方案...相关推荐

  1. 在 Windows server 2008 下计划任务无法正常执行bat批处理文件

    在Windows server 2008下计划任务无法正常执行bat批处理文件的问题 windows server 2008 下计划任务执行批处理,总是提示执行成功, 但是批处理该输出的内容却没有输出 ...

  2. Windows Server 2008 下ASP程序连接ORACLE数据库驱动错误

    今天开发那边升级.改造系统过程中,在测试服务器碰到关于ASP程序连接ORACLE数据库的小问题,虽然是小问题,但是整起来真要命啊,花了不少时间,主要是ASP程序啊,这种上古神器,哥还是当年毕业的时候弄 ...

  3. android sdk启动不了,windows server 2008下android sdk不能正常启动

    说起这个问题来我就很郁闷,因为这个问题让我白白的损失超过4个G的流量 ,作为在校大学生,这么多的流量可是很让人肉疼的啊(每月总共就10个G的流量,还要看电影.上网啥的,疼啊....),得,闲话少说,入 ...

  4. 打印管理 php,window_强化Windows Server 2008下的打印管理,  打印管理从来都是Windows Se - phpStudy...

    打印管理从来都是Windows Server服务管理的重要方面,在Windows Server 2008中针对打印管理做了很多改进,也提供了不少新功能.本文将与大家分享笔者在利用Windows Ser ...

  5. Windows Server 2008下Microsoft Office Excel 不能访问文件解决方法

    Windows Server 2008下Microsoft Office Excel 不能访问文件解决方法 在VS2008 中写了一个EXCEL的导出功能的东西,但在Windows Server 20 ...

  6. 服务器系统2008能升级2012吗,将 Windows Server 2008 R2 升级到 Windows Server 2012 R2

    将 Windows Server 2008 R2 升级到 Windows Server 2012 R2 09/16/2019 本文内容 如果要保留相同的硬件和已设置的所有服务器角色而不平展服务器,则需 ...

  7. Windows Server 2008下“管”好Guest帐户

    禁止Guest用户在登陆用户中出现: 运行"gpedit.msc",单击"确定"按钮,进入Windows Server 2008系统的组策略控制台窗口;在目标分 ...

  8. windows server 2008下搭建DHCP服务器

    一.实验目的 1. 安装DHCP服务器,IP地址池192.168.188.100~192.168.188.200,为boss保留1个IP地址.. 2. 设置Windows 2003客户端,使其自动获取 ...

  9. 在 Windows Server 2008 下安装 Community Clips

    Microsoft Office Labs 为广大用户提供了一款实用的桌面操作视频录制软件--Community Clips,通过该工具我们可以轻松地在 Windows 上录制操作视频,用于教学.演示 ...

  10. Windows Server 2008 R2之十一Windows Server Backup

        和以前版本一样,我们仍然可以通过备份AD域中的任意一台DC来执行全系统备份或系统状态备份,并且必须在目录服务还原模式(DSRM)下还原系统状态来还原AD,也可以利用NTDSUTIL进行对象的授 ...

最新文章

  1. 【面向对象编程】(4) 类的继承,重构父类中的方法
  2. 一些debug常用的魔法数值
  3. FZU2020 lucas定理求解组合数
  4. 新三国 雷人台词----雷死一群程序员
  5. 战神背光键盘如何关系_谁说轻薄和性能不可兼得?神舟战神Z7助你“清凉”一夏...
  6. oracle ocx加载错误,flash9.ocx 加载错误解决方法
  7. JQuery正则验证
  8. Redis Info命令陈述
  9. 【背包问题】基于matlab多目标粒子群算法求解多背包问题【含Matlab源码 654期】
  10. Web前端开发工程师基本要求
  11. 用adb pull命令从android系统中读取文件失败的原因及解决办法
  12. SQL 数据定义语句(DDL)
  13. iphone13怎么安装双卡(双卡功能)
  14. python分布采样_python – 从有界域zipf分布中采样
  15. 无人机飞行控制逻辑以及不稳定原因分析
  16. html 用户名正则表达式,独家解密实现:百度账号注册用户名正则表达式验证规则...
  17. 笔记︱盘点实验科学的三种实验模型(A/B实验、因果推断、强化学习)
  18. C++通讯录管理系统
  19. lintcode1485. 圣杯咒语
  20. java人工智能开源项目_人工生命——一个用代码模拟生命进化的人工智能开源项目...

热门文章

  1. Spark源码系列(一)spark-submit提交作业过程
  2. 字节小组长无意中得知整个部门的薪资,自己28K,手下却有35K,怎么办
  3. 我的天!!线上千万级大表排序,如何优化?
  4. 我们精心整理的2019最新全栈资料!首次公布
  5. Android 8.0 Oreo 来啦!
  6. 推荐两份学习 Kotlin 和机器学习的资料
  7. 自学编程这几点非常重要
  8. solr5.3.1 mysql_Solr-5.3.1 dataimport 导入mysql数据
  9. R语言--字符串操作
  10. 洛谷P3111 [USACO14DEC]牛慢跑Cow Jog_Sliver