我开发了一个服务器应用程序,它使用 Excel 2007 COM 自动化来转换一些 xls 文件。它作为 Windows Datacenter 实例上的服务启动,在其自己的用户下运行,我必须更改 DCOM 安全设置(“作为交互式用户启动”)才能使其工作。
问题是,当我注销(通过 RDP)时,它停止工作。我登录,它再次工作。
有没有人有同样的问题?
我开发了一个服务器应用程序,它使用 Excel 2007 COM 自动化来转换一些 xls 文件。它作为 Windows Datacenter 实例上的服务启动,在其自己的用户下运行,我必须更改 DCOM 安全设置(“作为交互式用户启动”)才能使其工作。
问题是,当我注销(通过 RDP)时,它停止工作。我登录,它再次工作。
有没有人有同样的问题?
好的,所以我无法让 Excel 在没有交互式用户的情况下运行,再多的 DCOMCNFG 诡计也行不通。所以我只是为运行服务的用户配置了自动登录(有关说明,请参见http://support.microsoft.com/kb/315231)。
这具有在服务器启动时,该用户将作为交互式控制台会话登录的效果。与 RDP 会话不同,这是永久性的,让 Excel 感到高兴。
对于必须做类似事情的穷人的其他提示:
我遇到过这个问题,我发现答案实际上在DCOM Configuration.
我做了以下事情来解决这个问题:
Identity
选项卡This User
您可能需要转到Security
选项卡并确保您在上面指定的用户具有适当的权限。
完成此操作后,我能够在仍然使用 Excel COM 自动化库的同时注销服务器。
服务器端:
A) 将“交互式用户”切换为“此用户”。
B)“此用户”仅在创建这些文件夹后才有效:
C) 等待它... 步骤 B) 触发 Windows 自动创建:
请注意,“交互式用户”的定义是搭载到服务器的任何活动登录用户。因此,当服务器上没有用户处于活动状态时,无法启动 MS Office。
即,对我来说,该解决方案是已经提出的解决方案的混合体。我在 Win 2012R2 上使用了 Office 2013 (x86)。我的问题是 Word(使用 WordToPDF)。
步骤 B 的详细信息:
步骤 C 的详细信息:
有一个叫做Excel Services的东西,它应该可以使用 SharePoint 将 Excel 作为服务运行,这将允许它在无人值守的情况下运行而没有人登录。
如果运行 EXCEL 的帐户是管理员,那么这将起作用:
对于 64 位 (x64),创建此文件夹:C:\Windows\SysWOW64\config\systemprofile\Desktop 对于 32 位 (x86),创建此文件夹:C:\Windows\System32\config\systemprofile\Desktop 否则按照以下步骤解决此问题: