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 , 到此,问题解决。
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号