我有一个运行的 Windows 服务Excel Interop
以便自动执行各种宏。然而,当我尝试时遇到了一个特殊的问题运行使用 Windows 身份验证访问数据库的宏...
如果宏运行通过Windows服务,工作簿已打开,宏已开始执行,但应用程序挂起(大概在数据访问部分)。
但是,如果运行宏通过 Visual Studio 调试器,使用与服务相同的实现(它们调用相同的类库),它执行、保存工作簿并按预期关闭。
我确信这与冒充有关,但我似乎无法弄清楚。我的 Windows 服务在我的用户下运行,并且我还将组件服务中的默认 COM 属性修改为Impersonate
而不是默认的Identify
.
任何帮助将不胜感激,因为它最好作为 Windows 服务而不是控制台应用程序运行。
也许我有点晚了,但我还是要说:
我有一个类似的问题并通过创建一个解决了它Desktop
文件夹中C:\Windows\SysWOW64\config\systemprofile
and C:\Windows\System32\config\systemprofile
.
在 Windows 服务中使用 Excel 时,似乎无法在特定用户下运行。因此,它使用 LocalSystem 服务帐户运行,并且需要桌面文件夹才能与 Excel 互操作进行交互。
我没有进一步的解释,但它对我有用,并且没有引起任何其他已知问题。我进行了大量搜索来寻找明确的答案,但我发现的所有内容都描述了解决方案,但没有说明原因。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)