zoukankan      html  css  js  c++  java
  • "检索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 服务器应用程序的 本地 激活 权限。此安全权限可以使用组件服务管理工具进行修改。”

    可以不处理。

  • 相关阅读:
    LeetCode 109 Convert Sorted List to Binary Search Tree
    LeetCode 108 Convert Sorted Array to Binary Search Tree
    LeetCode 107. Binary Tree Level Order Traversal II
    LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal
    LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal
    LeetCode 103 Binary Tree Zigzag Level Order Traversal
    LeetCode 102. Binary Tree Level Order Traversal
    LeetCode 104. Maximum Depth of Binary Tree
    接口和多态性
    C# 编码规范
  • 原文地址:https://www.cnblogs.com/lykyl/p/6208120.html
Copyright © 2011-2022 走看看