13

我开发了一个服务器应用程序,它使用 Excel 2007 COM 自动化来转换一些 xls 文件。它作为 Windows Datacenter 实例上的服务启动,在其自己的用户下运行,我必须更改 DCOM 安全设置(“作为交互式用户启动”)才能使其工作。

问题是,当我注销(通过 RDP)时,它停止工作。我登录,它再次工作。

有没有人有同样的问题?

4

5 回答 5

11

好的,所以我无法让 Excel 在没有交互式用户的情况下运行,再多的 DCOMCNFG 诡计也行不通。所以我只是为运行服务的用户配置了自动登录(有关说明,请参见http://support.microsoft.com/kb/315231)。

这具有在服务器启动时,该用户将作为交互式控制台会话登录的效果。与 RDP 会话不同,这是永久性的,让 Excel 感到高兴。

对于必须做类似事情的穷人的其他提示:

  • 创建文件夹 C:\Windows\System32[或 SysWOW64]\config\systemprofile\Desktop
  • 确保为运行服务的用户配置了默认打印机
  • 更改 Excel 的 DCOMCNFG 设置(mmc -32,添加“组件服务”)以使用交互式帐户运行
  • 更改全局 DCOM 默认值以允许运行该服务的用户进行本地访问、本地启动和本地激活
于 2010-11-21T23:30:52.407 回答
5

我遇到过这个问题,我发现答案实际上在DCOM Configuration.

我做了以下事情来解决这个问题:

  1. 打开 Excel DCOM 属性
  2. 转到Identity选项卡
  3. 选择This User
  4. 输入有权访问 Excel 的人员的凭据

您可能需要转到Security选项卡并确保您在上面指定的用户具有适当的权限。

完成此操作后,我能够在仍然使用 Excel COM 自动化库的同时注销服务器。

于 2012-04-02T15:29:16.827 回答
4

服务器端:

A) 将“交互式用户”切换为“此用户”

B)“此用户”仅在创建这些文件夹后才有效:

  • C:\Windows\SysWOW64\config\systemprofile\Desktop
  • C:\Windows\System32\config\systemprofile\Desktop

C) 等待它... 步骤 B) 触发 Windows 自动创建:

  • C:\用户\默认\桌面

请注意,“交互式用户”的定义是搭载到服务器的任何活动登录用户。因此,当服务器上没有用户处于活动状态时,无法启动 MS Office。

即,对我来说,该解决方案是已经提出的解决方案的混合体。我在 Win 2012R2 上使用了 Office 2013 (x86)。我的问题是 Word(使用 WordToPDF)。

步骤 B 的详细信息:

  • 登录到服务器 > 开始 > 运行 DCOMCNFG.EXE(启动组件服务)> 控制台根目录 > 组件服务 > 计算机 > 我的电脑 > DCOM 配置...
  • 滚动到“Microsoft Word 97 - 2003 文档”或“Microsoft Excel 应用程序”(...即,您需要启动的任何 MS Office 软件)...
  • 右键单击它并选择“属性”>“身份”选项卡>选择“此用户”>为某些有权访问服务器上的 MS Office 的用户输入凭据。(我使用了具有管理员权限的用户。)

步骤 C 的详细信息:

  • 等待时间从 5 分钟到通宵不等。或者,手动创建此文件夹(如果该文件夹不存在并且您急于完成测试)。
于 2016-06-10T23:07:21.593 回答
2

有一个叫做Excel Services的东西,它应该可以使用 SharePoint 将 Excel 作为服务运行,这将允许它在无人值守的情况下运行而没有人登录。

于 2010-11-20T22:19:14.290 回答
0

如果运行 EXCEL 的帐户是管理员,那么这将起作用:

对于 64 位 (x64),创建此文件夹:C:\Windows\SysWOW64\config\systemprofile\Desktop 对于 32 位 (x86),创建此文件夹:C:\Windows\System32\config\systemprofile\Desktop 否则按照以下步骤解决此问题:

  1. 以管理员身份登录您的服务器
  2. 转到“开始”->“运行”并输入“MMC comexp.msc /32”
  3. 转到 Microsoft Excel 应用程序的属性,在身份下,将其从启动用户(默认设置)更改为交互式用户。
  4. 转到 Microsoft Office Excel 2007 工作簿的属性,在身份下,将其从启动用户更改为交互式用户(默认设置)。
  5. 转到 Microsoft Excel 应用程序的安全选项卡并为“启动和激活权限”选择自定义并添加 ACCOUNT(EXCEL 在其下运行)并为其授予“本地启动”和“本地激活”权限
  6. 转到 Microsoft Office Excel 2007 工作簿的安全选项卡,然后为“访问权限”选择自定义,然后将 ACCOUNT(EXCEL 在其下运行)添加到它并授予它“本地访问”权限
于 2014-10-29T09:21:40.820 回答