检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问。 (异常来自 HRESULT:0x80070005 (E_ACCESSDENIED))。

ASP.NET应用程序中引用Microsoft Excel组件,并在程序中调用时,部署到服务器上经常会遇到以下的错误(开发环境测试OK的):

检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问。 (异常来自 HRESULT:0x80070005 (E_ACCESSDENIED))。
在 BatchImportEntryTable.GetExcelData(String FileName)

解决方法:

开始"->"运行"中输入  mmc -32 启动"控制台";

2.文件--添加或删除管理单元;

3. 在可用的管理单元选中“组件服务”---添加---确定;.依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置";

5.在"DCOM配置"中就能找到"Microsoft Excel 应用程序"

在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应用程序"属性"对话框


6、点击"标识"标签,选择"交互式用户"
7、点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加"NETWORK SERVICE"用户(注意要选择本计算机名)和"IIS_IUSRS",并给它们赋予"本地启动"和"本地激活"权限;在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加"NETWORK SERVICE"用户和"IIS_IUSRS",然后给他们赋予"本地访问"权限.

8、点击"确定"、"应用",如果是64位操作系统,点击“文件”,然后保存。

原文地址:https://www.cnblogs.com/Snowfun/p/7641841.html