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

patrickjiang 2013-04-23 12:12:48
错误信息:

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 ?
...全文
520 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
patrickjiang 2013-07-13
  • 打赏
  • 举报
回复
这段时间查了很多资料,发现其实是服务器上的Office权限是否开通的问题,实际上Office提供了组件服务,只消进入组件管理,然后将Excel应用的权限全部打开即可。前段时间是在自己的机器上调试,现在是在服务器上调试,又遇到很多新情况。今天就结贴,谢谢大家!
宝_爸 2013-04-24
  • 打赏
  • 举报
回复
这个说的已经很清楚了,磁盘空间不足,或者内存空间不足。
patrickjiang 2013-04-23
  • 打赏
  • 举报
回复


我想说的是,没想到这么厉害的高手看了我的帖子,谢谢!重装Office 2007以后,出现这样的错误,我把代码中的try catch语句注释了,用ASP.NET的异常报错机制,截图如上。
patrickjiang 2013-04-23
  • 打赏
  • 举报
回复
谢谢,我重装了Office 2007以后,出现了第二种报错:

System.Runtime.InteropServices.COMException (0x800A03EC): 内存或磁盘空间不足,Microsoft Office Excel 无法再次打开或保存任何文档。 • 要想获得更多的可用内存,请关闭不再使用的工作簿或程序。 • 要想释放磁盘空间,请删除相应磁盘上不需要的文件。 在 Microsoft.Office.Interop.Excel.Workbooks.Add(Object Template) 
System.Runtime.InteropServices.COMException (0x800A03EC): 内存或磁盘空间不足,Microsoft Office Excel 无法再次打开或保存任何文档。 • 要想获得更多的可用内存,请关闭不再使用的工作簿或程序。 • 要想释放磁盘空间,请删除相应磁盘上不需要的文件。 在 Microsoft.Office.Interop.Excel.Workbooks.Add(Object Template) 在 AdminOnly_ExportingDetail.btnExportExcel_Click(Object sender, EventArgs e)
宝_爸 2013-04-23
  • 打赏
  • 举报
回复
Network Service 是win2003运行asp.net进程的账户。
宝_爸 2013-04-23
  • 打赏
  • 举报
回复
应该是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
蒋晟 版主 2013-04-23
  • 打赏
  • 举报
回复
拒绝访问的来源很多的,比如如果你的应用程序池用户无权访问COM DLL文件(默认只能访问wwwroot下)也会返回这个错误。用process monitor看看文件系统和注册表有没有拒绝访问的记录。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧