从Vista上的NT服务运行时,Excel COM对象的文件访问失败

6 .net c# com vbscript windows-vista

我们使用COM对象访问NT服务中的excel电子表格(通过Windows Scripting Host).在Vista之前,这很好用,但从Vista开始,我们收到此错误:

Microsoft Office Excel无法访问文件'c:\ myfiles\test.xls'.有几个可能的原因:

  • 文件名或路径不存在.
  • 该文件正被另一个程序使用.
  • 您尝试保存的工作簿与当前打开的工作簿具有相同的名称.

我尝试更改NT服务登录设置以使用我自己的帐户,管理员帐户和本地系统.我查看了本地安全策略,但没有找到任何内容.我花了几天时间搜索Microsoft KB无济于事.

如果脚本是从控制台应用程序执行的,它可以正常工作.该文件打开并处理没有问题.仅在从服务的上下文中执行时才会发生错误.

如果该服务在Windows XP或Server 2003 SP1上运行,它也可以正常工作.只有在Vista上才会失败(我们现在已经收到有关它在Server 2003 SP2中失败的报告)!

代码,它的价值非常简单:

dim xl_app
Set xl_app = CreateObject("Excel.Application")
xl_app.Workbooks.Open mypath,0,1
Run Code Online (Sandbox Code Playgroud)

我怀疑这个人可能遇到了同样的问题: http://bytes.com/forum/thread819740.html

Dir*_*mar 1

还有一些问题:

  • 您使用的是哪个版本的 Excel?
  • 您是否尝试过以提升的权限运行该服务?