• "检索COM类工厂中 CLSID为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005" 问题的解决


    一、故障环境

    1. Windows 2008
    2. .net 3.0

    二、故障描述

    ​ 调用excel组件生成excel文档时页面报错。报错内容一大串,核心是“检索COM类工厂中 CLSID为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误: 80070005”。应该是WEB应用帐号权限不足导致的。百度上同样问题的解决方案超级多,但内容几乎一样,效果也几乎一样是没什么用。结合网文和实际应用折腾了半天终于解决,整理一下思路记录在此,以备再查。

    三、处理

    1. 打开“组件服务”。有的文章说32位DCOM配置需要在运行中执行“comexp.msc -32”来启动,但在此实例中怎么打开都是一样的。
    2. 在“组件服务/计算机/我的电脑/DCOM配置”中找到“Microsoft Excel Application”或“Microsoft Excel 应用程序”,右键菜单选“属性”。在属性面板里切换到“标识”选择“启动用户”,再切换到“安全”将项目应用程序池对应启动帐号(或iis_wpg组) 分别添加到“启动和激活权限”以及“访问权限”中,并给予所有权限。确定并退出。
    3. 找到office安装目录,给excel.exe所在目录添加应用程序池对应启动帐号(或iis_wpg组)读取及读取执行权限。

    四、几个小细节

    1. 很多网文都说在“组件服务”属性面板的“标识”里选择“交互用户”,事实上在此实例中是完全行不通的,必须要设为“启动用户”。
    2. 故障发生时在系统日志里可能会连带报告

    “应用程序-特定 权限设置并未从地址 LocalHost(使用 LRPC) 使用 CLSID
    {000C101C-0000-0000-C000-000000000046}
    和 APPID
    {000C101C-0000-0000-C000-000000000046}
    向用户XXXXXXXX授予对 COM 服务器应用程序的 本地 激活 权限。此安全权限可以使用组件服务管理工具进行修改。”

    可以不处理。

  • 相关阅读:
    使用Haskell写web
    src/lxml/etree.so: undefined symbol: xmlSchematronSetValidStructuredErrors 解决方案
    CentOS允许某一端口接受外部链接
    windows下的NTP服务
    Huffman树,Huffman编码的实现(C#)
    OpenGL的函数(GLU, GLUT)
    OpenGL的函数(GL)
    GLUT函数说明
    FreeImage使用基础,图像旋转,图像滤波
    Hello PureMVC!!!
  • 原文地址:https://www.cnblogs.com/lykyl/p/6208120.html
Copyright © 2020-2023  润新知