[转]Win7、Windows Server 2008下无法在Windows Service中打开一个已经存在的Excel 2007文件问题的解决方案_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > [转]Win7、Windows Server 2008下无法在Windows Service中打开一个已经存在的Excel 2007文件问题的解决方案

[转]Win7、Windows Server 2008下无法在Windows Service中打开一个已经存在的Excel 2007文件问题的解决方案

 2014/12/1 12:33:34  小滴的余  程序员俱乐部  我要评论(0)
  • 摘要:昨天,组里一个小朋友告诉我,他写的报表生成服务中无法打开一个已经存在的Excel2007文件,他的开发环境是Win7、VisualStudio.Net2008(WindowsServer2008下同样存在此问题)。比较奇怪的是,ExcelAutomation对象是可以实例化的,但是在执行Workbooks.Open时抛出异常如下:MicrosoftOfficeExcel不能访问文件“a.xls”。可能的原因有:•文件名称或路径不存在。&bull
  • 标签:解决方案 Server Windows Service 解决 excel 文件 一个 问题 Win7

昨天,组里一个小朋友告诉我,他写的报表生成服务中无法打开一个已经存在的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目录,仍未找到答案。如果哪位高价知道,请不吝赐教。

源文地址:http://www.cnblogs.com/TonyJoule/archive/2010/05/18/1737973.html

发表评论
用户名: 匿名