如何配置导出到 Excel 的 DCOM 配置?

Posted

技术标签:

【中文标题】如何配置导出到 Excel 的 DCOM 配置?【英文标题】:How to configure DCOM configuration for Export To Excel? 【发布时间】:2012-12-03 11:30:26 【问题描述】:

我正在我的一个 asp.net 应用程序中实现导出到 Excel 功能。我有两台服务器(QA 和 Development)。在开发服务器中它工作正常,但在 QA 服务器中我遇到错误。

    An exception of type System.Runtime.InteropServices.COMException occurred and was 
caught. Source:mscorlib;Message:Retrieving the COM class factory for component with CLSID 
00024500-0000-0000-C000-000000000046 failed due to the following error: 8000401a The 
server process could not be started because the configured identity is incorrect.  Check the username and password. (Exception from HRESULT: 
0x8000401A).;Target:System.MarshalByRefObject AllocateUninitializedObject(System.RuntimeType);StackTrace:   at 
System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType objectType)     at 
System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(RuntimeType serverType)     at 
System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(RuntimeType serverType, Object[] props, Boolean bNewObj)     at 
System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& 
bNeedSecurityCheck)     at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache)     at 
System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache)     at 
System.Activator.CreateInstance(Type type, Boolean nonPublic)     at System.Activator.CreateInstance(Type type)     at XXXXXXXXXXXXX  Method - XXXXXXXXXXXXX

我在两台服务器上都配置了相同的东西,但 QA 服务器仍然无法正常工作。接下来我该怎么办?有什么想法...??

【问题讨论】:

【参考方案1】:

您的 QA 服务器上是否安装了 Excel 2000?至少它无法启动自动化...

来源:http://support.microsoft.com/kb/292491/en-us

Excel.Application 版本无关的 PROGID 和 00024500-0000-0000-C000-000000000046 CLSID。 COM 相关注册表 Excel 2000 的条目包括以下内容: HKEY_CLASSES_ROOT\Excel.Application\CLSID 默认值: 00024500-0000-0000-C000-000000000046 HKEY_CLASSES_ROOT\CLSID00024500-0000-0000-C000-000000000046\LocalServer32

默认值:C:\PROGRA~1\MICROS~1\Office\EXCEL.EXE /automation 按照从 PROGID 到 CLSID 的注册表项,COM 可以 了解 Excel 可执行文件的安装位置并启动它 自动化。

【讨论】:

【参考方案2】:

我遇到了类似的问题,即在会话之间丢失了身份,我不得不再次提供凭据以临时修复它。在调查它时,我遇到了一篇文章,该文章建议授予用作具有“作为批处理作业登录”权限的身份的域帐户,因为如果未授予该权限,则当 AD 执行更新时该身份将丢失。

https://support.microsoft.com/en-za/help/312497/prb-com-application-under-domain-account-fails-intermittently

https://www.***snet.com/faq/granting-logon-as-batch-privilege

【讨论】:

以上是关于如何配置导出到 Excel 的 DCOM 配置?的主要内容,如果未能解决你的问题,请参考以下文章

VB.NET输出到Excel的问题

导出excel的程序,COM 类工厂中 CLSID 的组件时失败.错误: 80040154

c#导出到excel的几种解决方案

如何配置/格式化 spagobi 导出到 excel 配置

DCOM 配置中缺少 Microsoft Excel 应用程序条目

Dcom配置中没有 office 的东西 word excel都没有