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

时间:2010-11-20 19:43:12

标签: excel com automation dcom

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

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

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

5 个答案:

答案 0 :(得分:8)

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

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

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

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

答案 1 :(得分:2)

有一个名为Excel Services的东西,可以使用SharePoint将Excel作为服务运行,这样就可以无人值守地运行,无人登录。

答案 2 :(得分:2)

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

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

  1. 打开Excel DCOM属性
  2. 转到Identity标签
  3. 选择This User
  4. 输入有权访问Excel的人员的凭据
  5. 您可能需要转到Security标签,并确保您上面指定的用户具有相应的权限。

    执行此操作后,我仍然可以在使用Excel COM Automation库时注销服务器。

答案 3 :(得分: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的情况下)并给它"本地访问"许可

答案 4 :(得分:0)

服务器端:

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

B)“此用户”仅适用于创建这些文件夹

  • C:\的Windows \ Syswow64资料\配置\ systemprofile \桌面
  • C:\的Windows \ system32 \设置\ systemprofile \桌面

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分钟到夜晚不等。 (可选)手动创建此文件夹(如果该文件夹不存在,并且您急于完成测试)。