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 发现其实是服务器上的Office权限是否开通的问题,实际上Office提供了组件服务,只消进入组件管理,然后将Excel应用的权限全部打开即可。前段时间是在自己的机器上调试,现在是在服务器上调试,又遇到很多新情况
|