Windows Server 2008 R2 64位 下解决:检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败

  今天在公司的服务器(Windows server 2008 r2 64bit + Office 2007 + .net framework 3.5)上部署一个公司内部的在线考试系统,

  在本系统中有一个Excel导入的功能,相当然就用到了Microsoft.Office.Interop.Excel组件,而问题就在这上面出现了。

  在导入Excel时出现‘检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败’ 的错误

  于是乎就请出‘度娘’出场,‘度娘’给出了N多方案,没有一个能解决我的问题,当我耐心耗尽时,博客园出现了,

  http://www.cnblogs.com/petitprince/archive/2010/08/20/1804360.html 是它给了我灵感,问题解决了。

  以前在Server 2003中,用以下方法就可以解决出现的问题,

  1.在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"

  2.依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置"

  3.在"DCOM配置"中找到"Microsoft Excel Application",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel Application属性"对话框

  4.点击"标识"标签,选择"交互式用户"

  5.点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限

  6.依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限.

  

  然而在Server 2008 64bit 中的组件服务中找不到Microsoft Excel Application,查阅资料说是因为DCOMcnfg是32配置,在64位系统下不被支持。

  于是乎‘度娘’就帮找到了打开32位的dcomcnfg的方式:

  1.Win+R,打开运行对话框,输入mmc -32

  2.打开“文件”->“添加或删除管理单元”-选择组件服务(Component Services)->点击添加->确定。

  3.再按Server 2003中的配置步骤就可以在DCOM组件中找到Microsoft Excel Application了。

     但是配置完成后还是会出错,然后一不小心就在博客园中看到了http://www.cnblogs.com/petitprince/archive/2010/08/20/1804360.html 这篇博文。

  需要再设置应用程序池的标识:

  右键单击网站对应的应用程序池,选择‘高级设置’—>修改'进程模型'中的'标识'为LocalSystem或者NetworkService , 到此,问题解决。

posted @ 2012-09-18 13:28  黄豆芽  阅读(292)  评论(0)    收藏  举报