当用户注销时,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.
我做了以下来解决这个问题:
- 打开Excel DCOM属性
- 转到“
Identity
选项卡 - select
This User
- 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 \请按照下列步骤解决此问题:
- 以pipe理员身份login到您的服务器
- 进入“开始” – >“运行”并input“MMC comexp.msc / 32”
- 转到Microsoft Excel应用程序的属性,在标识下,将其更改为来自启动用户的交互式用户(默认设置)。
- 转到“Microsoft Office Excel 2007工作簿”的属性,在“标识”下,将其更改为“启动用户”中的“交互式用户”(默认设置)。
- 转到Microsoft Excel应用程序的“安全”选项卡,然后select自定义“启动和激活权限”,并向其添加“ACCOUNT”(在其下运行EXCEL)并将其授予“本地启动”和“本地激活”权限
- 转到“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)。