IIS下注册COM组件(转)

以Excel为例windows

问题描述:安全

检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败,缘由是出现如下错误: 80070005基本上.net导出excel文件,都须要如此配置一下,不配置有的时候没错,而配置后基本应该不会出错。服务器

具体步骤:asp.net

1:在服务器上安装office的Excel软件. 
2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"  
3:依次双击"组件服务"->"计算机"->"个人电脑"->"DCOM配置" 
4:在"DCOM配置"中找到"Microsoft  Excel 应用程序",在它上面点击右键,而后点击"属性",弹出"Microsoft Excel 应用程序属性"对话框  
5:点击"标识"标签,选择"交互式用户"  
6:点击"安全"标签,在"启动和激活权限"上点击"自定义",而后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK  SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限.  
7:依然是"安全"标签,在"访问权限"上点击"自定义",而后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK  SERVICE"用户,而后赋予"本地访问"权限.  
8.若是交互式用户设置后出现错误8000401a,可取消交互式用户,指定为administratr,可暂时解决此问题。进一步的解决方式还有待探讨。  
9.采用第8点的设置后,打开Excel可能会出现“没法使用对象引用或连接”,而且不能进行单元格粘贴。缘由不明,取消设置后便可消失。  

另外说明:光按以上设置并不能彻底保证不出问题,由于调用OFFICE的操做可能涉及其余的系统资源,极可能依然权限不够而致使问题,只是设置EXCEL应用程序后,仍是可能会报80070005的错误,最保险的是应该在dcomcnfg中选中个人电脑而后右键属性->com安全,将里面的访问权限,启动和激活权限全都编辑默认,在当中加上network service(iis 5.0的话,要加的是asp.net用户),并如前面对networkservice设置上相同的权限,这样基本上能保证不会再出什么问题。测试

以上为基本出路方法,可是我也遇到过应用以上方法仍是报错的状况,个人环境是windows2003 + office2003+office2007,在测试服务器上均可以导出无任何问题!可是更新了正式环境就是报错,权限都设置了仍是报错,由于个人测试服务器是默认office启动的,因此我怀疑是office版本环境问题!因而我卸载了office2007,立刻测试ok了,可是重启服务器后就产生了have not been Pre-compiled错误,导出页面都没法打开了,因而我又从新安装了office2007,页面能够打开了,可是导出excel时又开始报错!我又把全部的权限从新设置一遍,问题依旧!后来发现两个服务器默认打开excel的程序不同,测试环境是默认office2003打开,正式环境是office2007打开,因而我在正式环境从新注册office2003,使其一样也是默认office2003打开程序,靠!问题终于解决了!!!.net

注册方法 执行    开始----运行----输入excel2003的安装路径,例如 "C:\Program Files\Microsoft Office\OFFICE11\excel.exe" /regserver    注意/符号前面有一个空格,其中"C:\Program Files\Microsoft Office\OFFICE11\excel.exe" 是excel2003的安装程序的路径,参数regserver表示注册的意思!
运行后,会启动Office 2003的安装程序,进行修复,从新注册。
excel2007为默认的启动程序的方法类同,能够执行   开始----运行----"D:\Program Files\Microsoft Office\Office12\excel.exe" /regserver
           综上所述,再遇到Excel导出、导入问题时,先考虑权限问题,再考虑office的版本环境!如此基本可以解决这些问题了excel

 

1.IIS6按照以上操做便可解决问题server

2.iis7下,因为默认的帐户并不是network service,所以要手动设置一下  应用程序池-》高级设置-》标识-》内置帐户-》修改成NetworkService对象

相关文章
相关标签/搜索