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

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

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

有没有人有同样的问题? 我很高兴现在有任何帮助。

好的,所以我不能让Excel在没有交互式用户的情况下运行,没有任何的DCOMCNFG技巧会做。 所以我简单地configuration了服务运行的用户的自动login(参见http://support.microsoft.com/kb/315231 )。

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

其他暗示灵魂谁需要做类似的事情:

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

祝你好运!

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

我有这个问题,我发现答案实际上是在DCOM Configuration.

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

  1. 打开Excel DCOM属性
  2. 转到“ Identity选项卡
  3. selectThis User
  4. input有权访问Excel的用户的凭据

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

这样做后,我仍然可以在使用Excel COM Automation库的同时注销服务器。

如果运行EXCEL的帐户是pipe理员,那么这将工作:

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

  1. 以pipe理员身份login到您的服务器
  2. 进入“开始” – >“运行”并input“MMC comexp.msc / 32”
  3. 转到Microsoft Excel应用程序的属性,在标识下,将其更改为来自启动用户的交互式用户(默认设置)。
  4. 转到“Microsoft Office Excel 2007工作簿”的属性,在“标识”下,将其更改为“启动用户”中的“交互式用户”(默认设置)。
  5. 转到Microsoft Excel应用程序的“安全”选项卡,然后select自定义“启动和激活权限”,并向其添加“ACCOUNT”(在其下运行EXCEL)并将其授予“本地启动”和“本地激活”权限
  6. 转到“Microsoft Office Excel 2007工作簿”的“安全性”选项卡,然后select“访问权限”自定义,并向其添加“ACCOUNT”(在其下运行EXCEL)并授予“本地访问”权限

服务器端:

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

B)“这个用户”只有在创build这些文件夹后才能工作:

  • C:\ WINDOWS \ Syswow64资料\ CONFIG \ systemprofile \桌面
  • C:\ WINDOWS \ system32 \设置\ systemprofile \桌面

C)等待它…步骤B)触发Windows自动创build:

  • C:\用户\ DEFAULT \桌面

请注意,“交互式用户”的定义是捎带在任何活动的login用户到服务器。 因此,如果服务器上没有用户处于活动状态,则无法启动MS Office。

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

步骤B的详细信息:

  • login到服务器>开始>运行DCOMCNFG.EXE(启动组件服务)>控制台根目录>组件服务>计算机>我的电脑> DCOMconfiguration…
  • 滚动到“Microsoft Word 97 – 2003文档”或“Microsoft Excel应用程序”(即,无论您需要启动MS Office的东西)…
  • 右键单击它,然后select“属性”>“标识”选项卡>select“此用户”>为服务器上的MS Office访问某些用户input凭据。 (我使用了具有pipe理员权限的用户。)

步骤C的详细信息:

  • 等待从5分钟到过夜。 也可以手动创build该文件夹(如果该文件夹不存在,并且您急于完成testing)。