当用户注销时,Excel COM自动化停止工作

Mic*_*ing 10 com excel automation dcom

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

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

有没有人有同样的问题?我很高兴在这一点上有任何帮助.

Mic*_*ing 10

好吧,所以如果没有交互式用户,我就无法让Excel运行,没有任何DCOMCNFG技巧可以做到.因此,我只是为运行该服务的用户配置了自动登录(有关说明,请参阅http://support.microsoft.com/kb/315231).

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

对于那些需要做类似事情的灵魂灵魂的其他暗示:

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

祝好运!

  • 使用自动登录存在安全风险。您如何以这种方式保护服务器? (2认同)

Jas*_*son 6

服务器端:

\n\n

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

\n\n

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

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

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

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

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

\n\n

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

\n\n

步骤 B 的详细信息:

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

步骤 C 的详细信息:

\n\n
    \n
  • 等待时间从 5 分钟到过夜不等。或者,手动创建此文件夹(如果该文件夹不存在并且您急于完成测试)。
  • \n
\n


Oni*_*ght 5

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

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

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

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

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