Win7、Windows Server 2008下无法在Windows Service中打开一个已经存在的Excel 2007文件问题的解决方案
来源:互联网 发布:淘宝店铺授权书 编辑:程序博客网 时间:2024/05/19 23:14
Win7、Windows Server 2008下无法在Windows Service中打开一
时间:2010-09-04 06:16来源: 作者: 点击:27次
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目录,仍未找到答案。如果哪位高价知道,请不吝赐教。
- Win7、Windows Server 2008下无法在Windows Service中打开一个已经存在的Excel 2007文件问题的解决方案
- Win7、Windows Server 2008下无法在Windows Service中打开一个已经存在的Excel 2007文件问题的解决方案
- [转]Win7、Windows Server 2008下无法在Windows Service中打开一个已经存在的Excel 2007文件问题的解决方案
- Win7、Windows Server 2008下无法在Windows Service中打开一个已经存在的Excel 2007文件问题的解决方案
- [转]Win7、Windows Server 2008下无法在Windows Service中打开一个已经存在的Excel 2007文件问题的解决方案
- Win7、Windows Server 2008下无法在Windows Service中打开一个已经存在的Excel 2007文件问题的解决方案
- windows下无法打开chm文件的解决方案
- MFC 打开已经存在的EXCEL文件
- windows下chm文件无法打开的问题
- Windows Live Messenger 2009在Windows Server 2003下无法安装的解决方案
- 解决IIS服务使用C#代码在Windows Server 2008上无法启动Excel的问题
- 关于在Windows server 2008下安装应用程序的解决方案
- Windows 7 “我的电脑”下光驱无法打开问题分析过程详述+解决方案
- 解决在WINDOWS XP,win7系统上无法安装SQL server服务器版的问题
- 在Windows server 2008下计划任务无法正常执行bat批处理文件的问题
- tomcat在Windows Server 2008_x64下无法公网IP访问的问题
- 在Windows server 2008下计划任务无法正常执行bat批处理文件的问题
- windows回收站存在无法清除的文件
- java学习(2)
- 删除项目中的所有.svn文件夹
- 原创翻译 使用Windows Embedded Standard创建电池供电的设备(一)
- 标题:如何将YUM源设为本地光驱或ISO镜像文件(转)
- 捷径系列:NSString
- Win7、Windows Server 2008下无法在Windows Service中打开一个已经存在的Excel 2007文件问题的解决方案
- 关于android WebViewClient 的方法解释
- Apache模块动态加载和静态加载
- 去掉视频网站广告的办法
- 原创翻译 使用Windows Embedded Standard开发电池供电设备(二)
- 编译cegui
- 捷径系列:NSString
- 使用php://input
- android udp 端口映射方法