shu*_*iar 3 c# excel windows-services office-interop excel-interop
我有一个运行 Windows 服务Excel Interop以自动执行各种宏。但是,当我尝试运行使用 Windows 身份验证访问数据库的宏时,我遇到了一个奇怪的问题......
如果宏通过 Windows 服务运行,则打开工作簿并启动宏执行但应用程序挂起(大概在数据访问部分)。
但是,如果宏通过 Visual Studio 调试器运行,使用与服务相同的实现(它们调用相同的类库),它会执行,保存工作簿,并按预期关闭。
我确定这与模拟有关,但我似乎无法弄清楚。我在我的用户下运行了 Windows 服务,我还修改了组件服务中的默认 COM 属性,Impersonate而不是默认的Identify.
任何帮助将不胜感激,因为最好作为 Windows 服务而不是控制台应用程序运行。
也许我有点晚了,但我还是来了:
我有一个类似的问题,并通过Desktop在C:\Windows\SysWOW64\config\systemprofile和 中创建一个文件夹来解决它C:\Windows\System32\config\systemprofile。
在 Windows 服务中使用 Excel 时,似乎无法在特定用户下运行。因此,它使用 LocalSystem 服务帐户运行,并且需要一个 Desktop 文件夹才能与 Excel 互操作进行交互。
我没有进一步的解释,但它对我有用,并且没有引起任何其他已知问题。我搜索了很多以获得明确的答案,但我发现的所有内容都描述了解决方案,但没有说明原因。