检索组件的COM类工厂失败
我正在使用excel对象(COM组件)进行excel操作。 它在我的电脑上工作正常,但是当我将应用程序部署到我们的内联网时,我得到这个错误:
检索具有CLSID {00024500-0000-0000-C000-000000000046}的组件的COM类工厂失败,原因如下:80070005
我在我的web.config
使用Windows身份validation和impersonate = true。
我做了组件服务的所有设置,但它仍然给出了相同的错误。
请帮忙
当我部署我的应用程序时,我有同样的错误。 我已经从该站点获得解决scheme: 由于以下错误,带有CLSID XXX的组件失败:80070005访问被拒绝
这是这个解决scheme:
-
在DCOMCNFG中 ,右键单击我的电脑,然后select属性 。
-
selectCOM证券标签。
-
在“ 访问权限”中 ,单击“ 编辑默认值” ,然后向其中添加networking服务 ,并为其授予“ 本地访问权限”。 对<Machine_name> \ Users执行相同操作。
-
在“ 启动和激活权限”中 ,单击“ 编辑默认值”,然后将“ networking服务”添加到该服务中,并为其提供“ 本地启动”和“ 本地激活”权限。 对<Machine_name> \ Users执行相同操作。
*我使用表单身份validation。
如果您使用带有IIS7的Windows 2008 Server ,还有一个问题需要解决。 服务器可能会报告以下错误:
Microsoft Office Excel不能访问文件“c:\ temp \ test.xls”。 有几个可能的原因:
- 文件名或path不存在。
- 该文件正在被另一个程序使用。
- 您尝试保存的工作簿与当前打开的工作簿具有相同的名称。
该解决scheme在此处发布(查找用户Ogawa发布的文本): http ://social.msdn.microsoft.com/Forums/en-US/innovateonoffice/thread/b81a3c4e-62db-488b-af06-44421818ef91?prof =需要
系统EXCEL.EXE
存在过时的EXCEL.EXE
进程时,也会出现此错误(使用Task Manager --> Processes
选项卡查看这些Task Manager --> Processes
。)
杀死所有这些实例,应用程序将正常工作。
这为我做了诡计:(从MSDN论坛的解决scheme)
转到控制面板 – >pipe理工具 – >组件服务 – >计算机 – > myComputer – > DCOMconfiguration – > Microsoft Excel应用程序。
右键点击获取属性对话框。 转到安全选项卡并相应地自定义权限。
在启动和应用权限中,select自定义,编辑。 添加调用应用程序的用户/组。
如果它有助于某人:
我正在运行Windows 7 64位,我想注册一个32位的DLL。
首先我尝试了:regsvr32,并得到以下错误:
System.Runtime.InteropServices.COMException(0x80040154):检索具有CLSID {A1D59B81-C868-4F66-B58F-AC94A4A7982E}的组件的COM类工厂失败,原因如下:80040154。
然后我尝试通过组件服务(Run-> DCCOMCNFG)添加应用程序( http://www.justskins.com/forums/difference-registering-dll-using-regsvr32-and-component-services-17280.html )并得到以下错误:
System.UnauthorizedAccessException:检索具有CLSID {A1D59B81-C868-4F66-B58F-AC94A4A7982E}的组件的COM类工厂失败,原因如下:80070005。
有很多链接来解决这个问题,但什么对我有效:控制台根 – >组件服务 – >计算机 – >我的电脑 – > COM +应用程序 – > – >属性:安全选项卡:授权:取消选中“强制执行此应用程序的访问权限检查”。
我不知道它是什么。
你描述的CLSID是用于Microsoft.Office.Interop.Excel.ApplicationClass。 这个类基本上通过InprocServer32启动excel.exe。 如果你没有安装它,那么它会返回上面收到的错误信息。
对于IIS 8,我和Monic基本上是一样的。 我在X64机器上运行我的应用程序作为自己的应用程序池1.在DCOMCNFG中,右键单击我的电脑,然后select属性。
2.selectCOM证券标签。
3.在“访问权限”中,单击“编辑默认值”,然后将iis apppool \ myapp添加到该默认值,并赋予其允许本地访问权限。 对iis apppool \ myapp执行相同的操作
4.在启动和激活权限中,单击编辑默认值,然后将iis apppool \ myapp添加到它,并赋予它本地启动和本地激活权限。 对iis apppool \ myapp执行相同的操作。
此外,我不得不使C:\ Windows \ SysWOW64 \ config \ systemprofile \ Desktop下列出的文件夹,并给予iis apppool \ myapp的读写权限
我能理解你的痛苦 在我的情况下,错误通过执行以下步骤得到解决:
- 开始>运行> dcomcnfg。
- 打开文件夹DCOMconfiguration并select组件服务>计算机>我的电脑> DCOMconfiguration。
- select“Microsoft Office Word 97 – 2003文档”/“Microsoft Excel应用程序”并转到其属性。
- 在“安全”选项卡中设置“启动和激活权限”需要自定义(授权用户)。
- 现在转到IIS并selectWeb的应用程序池并转到其高级设置,然后select“NETWORK SERVICE”作为标识用户。
希望这可以帮助。