检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046}
来源:互联网 发布:unity3d 官方换装demo 编辑:程序博客网 时间:2024/06/05 16:56
最近用.net写了一个相关word的B/S的程序,部署到2003企业版的服务器上遇到这个错误:检索 COM 类工厂中 CLSID为{00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误:80070005。在网上搜索一下,找到解决方案
综上所述,再遇到Excel导出、导入问题时,先考虑权限问题,再考虑office的版本环境!如此基本能够解决这些问题了
1.对于上面提到的报错,属于用户权限不够,所以需要设置用户相应的权限。
.NET导出Excel、Word遇到的80070005错误的解决方法:
检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046}的组件时失败,原因是出现以下错误:80070005基本上.net导出excel、word文件,都需要如此配置一下,不配置有的时候没错,而配置后基本应该不会出错。
具体配置方法如下:
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安全,将里面的访问权限,启动和激活权限全都编辑默认,在当中加上networkservice(iis5.0的话,要加的是asp.net用户),并如前面对networkservice设置上相同的权限,这样基本上能保证不会再出什么问题。
以上为基本出路方法,但是我也遇到过应用以上方法还是报错的情况,我的环境是windows2003 +office2003+office2007,在测试服务器上都可以导出无任何问题!但是更新了正式环境就是报错,权限都设置了还是报错,因为我的测试服务器是默认office启动的,所以我怀疑是office版本环境问题!于是我卸载了office2007,马上测试ok了,但是重启服务器后就产生了havenot beenPre-compiled错误,导出页面都无法打开了,于是我又重新安装了office2007,页面可以打开了,但是导出excel时又开始报错!我又把所有的权限重新设置一遍,问题依旧!后来发现两个服务器默认打开excel的程序不一样,测试环境是默认office2003打开,正式环境是office2007打开,于是我在正式环境重新注册office2003,使其同样也是默认office2003打开程序,靠!问题终于解决了!!!
注册方法 执行 开始----运行----输入excel2003的安装路径,例如 "C:\ProgramFiles\Microsoft Office\OFFICE11\excel.exe" /regserver 注意/符号前面有一个空格,其中"C:\ProgramFiles\Microsoft Office\OFFICE11\excel.exe"是excel2003的安装程序的路径,参数regserver表示注册的意思!
运行后,会启动Office 2003的安装程序,进行修复,重新注册。
excel2007为默认的启动程序的方法类同,可以执行 开始----运行----"D:\Program Files\Microsoft Office\Office12\excel.exe"/regserver
2.用户有了权限,还需要对应用程序池正确配置,不然仍然有可能导出不成功。
打开iis,然后打开应用程序池的高级设置,点击进程模式,将网站的AppPool标识设置为NetworkService;打开常规,设置启动32位应用程序为true。对IIS进行这两步设置,应该就够了。
3.如果仍然不能导出成功,你就该考虑第三种情况了:你在客户端可能将文件导出到了服务器。
解决方案也比较简单,换一种思路呗。大家可以参考下面这篇文章,里面有各种导出Excel的方案:
http://www.cnblogs.com/qixuejia/archive/2010/01/30/1659627.html
这里再次导出的时候,由于会有服务器到客户端的数据传输,还会遇到显示格式的问题,我这里就不做详细说明了,提供给大家一个链接,如果遇到此问题的话,可以做个参考:
http://blog.csdn.net/zengxin2008/article/details/6367869
另外,如果你想给导出的Excel文件起个中文名字,您还会遇到编码解码问题,网上关于编码的问题很多。
0 0
- 检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败
- 检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败
- 检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败
- 检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败
- 检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败
- 检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件
- 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败
- 检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败
- 检索COM类工厂中CLSID为{00024500-0000-0000-C000-000000000046}的组件时失败
- 检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败
- 检索COM 类工厂中CLSID 为{00024500-0000-0000-C000-000000000046}组件时失败
- 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败 .
- 检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败 .
- 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败
- 检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败
- 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败
- 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046}
- 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败
- ExtJS Visual Studio&nb…
- EXTJS 返回数据时报如下错误:miss…
- XP下asp.net+iis5.1 发布网站时显示:服务器应用程序不可用
- c# 关于对文件和文件夹的操作
- office 2003安装/卸载“无法打开此修补程序包”错误的解决方案
- 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046}
- .net中导出Excel
- .net 将数字转换为人民币大写
- 把图片背景变透明(制作签名档)
- js中2个等号与3个等号的区别
- JavaScript Date 对象与函数
- JS with和this的用法
- JS innerHTML、innerText、outerHTML用法
- Microsoft SQL Server 2005 数据类型