日期:2014-05-17  浏览次数:20381 次

System.UnauthorizedAccessException: 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000
错误信息:

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


我知道这是月经贴。我好好看过CSDN论坛里问过的帖子,但是都是一样的,即在DCOM组件服务里面添加权限。但是我的DCOM组件服务列表里面根本没有{00024500-0000-0000-C000-000000000046}的组件,也就是没有Microsoft Office应用程序,但我装了Office 2007。

我看了所有的帖子,感觉这个帖子还靠谱。

是不是该删除重装Office 2007 ?

------解决方案--------------------
拒绝访问的来源很多的,比如如果你的应用程序池用户无权访问COM DLL文件(默认只能访问wwwroot下)也会返回这个错误。用process monitor看看文件系统和注册表有没有拒绝访问的记录。
------解决方案--------------------
应该是Excel吧Microsoft Excel Application。

goto Controlpanel --> Administrative tools-->Component Services -->computers --> myComputer -->DCOM Config --> Microsoft Excel Application.

In Access Permissions, click "Edit Defaults" and add Network Service to it and give it "Allow local access" permission. Do the same for <Machine_name>\Users.

In launch and Activation Permissions, click "Edit Defaults" and add Network Service to it and give it "Local launch" and "Local Activation" permission. Do the same for <Machine_name>\Users