Win7、Windows Server 2008下无法在Windows Service中打开一个已经存在的Excel 2007文件问题的解决方案...
昨天,组里一个小朋友告诉我,他写的报表生成服务中无法打开一个已经存在的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文件问题的解决方案...相关推荐
- 在 Windows server 2008 下计划任务无法正常执行bat批处理文件
在Windows server 2008下计划任务无法正常执行bat批处理文件的问题 windows server 2008 下计划任务执行批处理,总是提示执行成功, 但是批处理该输出的内容却没有输出 ...
- Windows Server 2008 下ASP程序连接ORACLE数据库驱动错误
今天开发那边升级.改造系统过程中,在测试服务器碰到关于ASP程序连接ORACLE数据库的小问题,虽然是小问题,但是整起来真要命啊,花了不少时间,主要是ASP程序啊,这种上古神器,哥还是当年毕业的时候弄 ...
- android sdk启动不了,windows server 2008下android sdk不能正常启动
说起这个问题来我就很郁闷,因为这个问题让我白白的损失超过4个G的流量 ,作为在校大学生,这么多的流量可是很让人肉疼的啊(每月总共就10个G的流量,还要看电影.上网啥的,疼啊....),得,闲话少说,入 ...
- 打印管理 php,window_强化Windows Server 2008下的打印管理, 打印管理从来都是Windows Se - phpStudy...
打印管理从来都是Windows Server服务管理的重要方面,在Windows Server 2008中针对打印管理做了很多改进,也提供了不少新功能.本文将与大家分享笔者在利用Windows Ser ...
- Windows Server 2008下Microsoft Office Excel 不能访问文件解决方法
Windows Server 2008下Microsoft Office Excel 不能访问文件解决方法 在VS2008 中写了一个EXCEL的导出功能的东西,但在Windows Server 20 ...
- 服务器系统2008能升级2012吗,将 Windows Server 2008 R2 升级到 Windows Server 2012 R2
将 Windows Server 2008 R2 升级到 Windows Server 2012 R2 09/16/2019 本文内容 如果要保留相同的硬件和已设置的所有服务器角色而不平展服务器,则需 ...
- Windows Server 2008下“管”好Guest帐户
禁止Guest用户在登陆用户中出现: 运行"gpedit.msc",单击"确定"按钮,进入Windows Server 2008系统的组策略控制台窗口;在目标分 ...
- windows server 2008下搭建DHCP服务器
一.实验目的 1. 安装DHCP服务器,IP地址池192.168.188.100~192.168.188.200,为boss保留1个IP地址.. 2. 设置Windows 2003客户端,使其自动获取 ...
- 在 Windows Server 2008 下安装 Community Clips
Microsoft Office Labs 为广大用户提供了一款实用的桌面操作视频录制软件--Community Clips,通过该工具我们可以轻松地在 Windows 上录制操作视频,用于教学.演示 ...
- Windows Server 2008 R2之十一Windows Server Backup
和以前版本一样,我们仍然可以通过备份AD域中的任意一台DC来执行全系统备份或系统状态备份,并且必须在目录服务还原模式(DSRM)下还原系统状态来还原AD,也可以利用NTDSUTIL进行对象的授 ...
最新文章
- 【面向对象编程】(4) 类的继承,重构父类中的方法
- 一些debug常用的魔法数值
- FZU2020 lucas定理求解组合数
- 新三国 雷人台词----雷死一群程序员
- 战神背光键盘如何关系_谁说轻薄和性能不可兼得?神舟战神Z7助你“清凉”一夏...
- oracle ocx加载错误,flash9.ocx 加载错误解决方法
- JQuery正则验证
- Redis Info命令陈述
- 【背包问题】基于matlab多目标粒子群算法求解多背包问题【含Matlab源码 654期】
- Web前端开发工程师基本要求
- 用adb pull命令从android系统中读取文件失败的原因及解决办法
- SQL 数据定义语句(DDL)
- iphone13怎么安装双卡(双卡功能)
- python分布采样_python – 从有界域zipf分布中采样
- 无人机飞行控制逻辑以及不稳定原因分析
- html 用户名正则表达式,独家解密实现:百度账号注册用户名正则表达式验证规则...
- 笔记︱盘点实验科学的三种实验模型(A/B实验、因果推断、强化学习)
- C++通讯录管理系统
- lintcode1485. 圣杯咒语
- java人工智能开源项目_人工生命——一个用代码模拟生命进化的人工智能开源项目...
热门文章
- Spark源码系列(一)spark-submit提交作业过程
- 字节小组长无意中得知整个部门的薪资,自己28K,手下却有35K,怎么办
- 我的天!!线上千万级大表排序,如何优化?
- 我们精心整理的2019最新全栈资料!首次公布
- Android 8.0 Oreo 来啦!
- 推荐两份学习 Kotlin 和机器学习的资料
- 自学编程这几点非常重要
- solr5.3.1 mysql_Solr-5.3.1 dataimport 导入mysql数据
- R语言--字符串操作
- 洛谷P3111 [USACO14DEC]牛慢跑Cow Jog_Sliver