【问题标题】:Excel Automation Windows ServiceExcel 自动化 Windows 服务
【发布时间】:2013-06-27 17:16:39
【问题描述】:

我有一个运行 Excel Interop 的 Windows 服务,以便自动执行各种宏。但是,当我尝试运行使用 Windows 身份验证访问数据库的宏时,我遇到了一个特殊的问题...

如果通过 Windows 服务运行宏,则打开工作簿并开始执行宏,但应用程序挂起(可能在数据访问部分)。

但是,如果宏通过 Visual Studio 调试器运行,使用与服务相同的实现(它们调用相同的类库),它会执行、保存工作簿并关闭为预计。

我确定这与模仿有关,但我似乎无法弄清楚。我在我的用户下运行了 Windows 服务,并且我还将组件服务中的默认 COM 属性修改为 Impersonate,而不是默认的 Identify

任何帮助将不胜感激,因为它最好作为 Windows 服务而不是控制台应用程序运行。

【问题讨论】:

标签: c# excel windows-services office-interop excel-interop


【解决方案1】:

也许我来晚了,但我还是去吧:

我遇到了类似的问题,并通过在 C:\Windows\SysWOW64\config\systemprofileC:\Windows\System32\config\systemprofile 中创建一个 Desktop 文件夹来解决它。

在 Windows 服务中使用时,Excel 似乎无法在特定用户下运行。因此,它使用 LocalSystem 服务帐户运行,并且它需要一个 Desktop 文件夹才能与 Excel 互操作交互。

我没有进一步的解释,但它对我有用,并且没有引起任何其他已知问题。我进行了很多搜索以找到明确的答案,但我发现的所有内容都描述了解决方案而没有说明原因。

【讨论】:

  • 是的,已经设置好了。我必须这样做才能让它发挥作用。我遇到的问题特定于它尝试使用宏中的受信任连接查询数据库时。不过还是谢谢。
猜你喜欢
  • 1970-01-01
  • 2010-12-11
  • 1970-01-01
  • 2015-05-28
  • 1970-01-01
  • 2014-01-25
  • 1970-01-01
  • 2010-10-07
  • 1970-01-01
相关资源
最近更新 更多