检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005

问题描述:

用ASP.NET进行Excel服务器端操作的时候,出现如下错误:

检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005

问题分析:

可能是权限问题,文件权限没有问题,可能是WEB调用COM组件权限问题。

问题解决:

1:在服务器上安装office的Excel软件.

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

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

4:在"DCOM配置"中找到"Microsoft Excel 应用程序",在它上面点击右键,然后点击"属性",弹出"Microsoft Excel 应

用程序属性"对话框

5:点击"标识"标签,选择"交互式用户"

6:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加

一个"NETWORK SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限.

7:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK

SERVICE"用户,然后赋予"本地访问"权限.

这样,我们便配置好了相应的Excel的DCOM权限.

注意:这是在WIN2003上配置的,在2000上,可能是配置ASPNET用户

由于EXCEL是在服务器上打开的,所以应该写一个把导出数据保存在服务器上,然后再传递给客户端的方法,最后每次调

用这个功能的时候再删除以前在服务器上所生成的所有Excel

---------------------------------------------------------------------------------------------------------

 另附一个解决方案:

在创建 EXCEL 应用程序时出现错误:

检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005

解决办法: 配置 DCOM 中 EXCEL 应用程序:

要在交互式用户帐户下设置 Office 自动化服务器,请按照下列步骤操作:

1. 以管理员身份登录到计算机,并使用完整安装来安装(或重新安装)Office。为了实现系统的可靠性,建议您将 Office CD-ROM 中的内容复制到本地驱动器并从此位置安装 Office。
2. 启动要自动运行的 Office 应用程序。这会强制该应用程序进行自我注册。
3. 运行该应用程序后,请按 Alt+F11 以加载 Microsoft Visual Basic for Applications (VBA) 编辑器。这会强制 VBA 进行初始化。
4. 关闭应用程序,包括 VBA。
5. 单击开始,单击运行,然后键入 DCOMCNFG。选择要自动运行的应用程序。应用程序名称如下所示:

Microsoft Access 97 - Microsoft Access 数据库
Microsoft Access 2000/2002 - Microsoft Access 应用程序
Microsoft Excel 97/2000/2002 - Microsoft Excel 应用程序
Microsoft Word 97 - Microsoft Word Basic
Microsoft Word 2000/2002 - Microsoft Word 文档

单击属性打开此应用程序的属性对话框。

6. 单击安全选项卡。验证使用默认的访问权限使用默认的启动权限已选中。
7. 单击标识选项卡,然后选择交互式用户
8. 单击确定,关闭属性对话框并返回主应用程序列表对话框。
9. DCOM 配置对话框中,单击默认安全性选项卡。
10. 单击访问权限的编辑默认值。验证访问权限中是否列出下列用户,如果没有列出,则添加这些用户:

SYSTEM
INTERACTIVE
Everyone
Administrators
IUSR_<machinename>*
IWAM_<machinename>*

* 这些帐户仅在计算机上安装了 Internet Information Server (IIS) 的情况下才存在。

11. 确保允许每个用户访问,然后单击确定
12. 单击启动权限的编辑默认值。验证启动权限中是否列出下列用户,如果没有列出,则添加这些用户:

SYSTEM
INTERACTIVE
Everyone
Administrators
IUSR_<machinename>*
IWAM_<machinename>*

* 这些帐户仅在计算机上安装有 IIS 的情况下才存在。

13. 确保允许每个用户访问,然后单击确定
14. 单击确定关闭 DCOMCNFG。

VS2008水晶报表发布部总结

一、       安装运行时支撑文件

如果你安装了VS2008,那么可以找到如下目录:

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalReports10_5

此目录下有如下文件:

COPY到服务器上根据服务器CPU情况选择性地安装一下。

二、       将WEB项目打包成安装程序

1.         在WEB解决方案中新建一个项目,选择项如下:
2.         右键点击项目名称,选择“视图”-“文件系统”
3.         按下图操作:
4.         设置项目的启动文件:
5.         在项目名称上右击,按下图操作,选“项目输出”:
6.         选“内容文件”后再“确定”:
7.         按SHIFT+F6即可生成安装文件,可以在项目的目录下能找到如下结果文件:

Copy这个MSI文件到服务器上安装完就可以浏览了。

三、       修补水晶报表的图标显示和打印功能

问题:如上所述,是可以浏览了,但是报表显示的工具栏上图标出不来:如下:

看到吗,小图标出不来。其它你再试试,打印也没法选打印机的。

解决办法:

1.         在自己开发的PC上找到如下目录:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\ASP.NETClientFiles\CrystalReportWebFormViewer4

注意:CrystalReportWebFormViewer4中的4有可能与你的不一样,无所谓的。

2.         将CrystalReportWebFormViewer4目录复制到你的WEB服务器上项目所在目录中,如:

C:\???????\aspnet_client\system_web\2_0_50727\CrystalReportWebFormViewer4

再试试看吧,问题解决!

祝好运!

MARK

一些图片没有下来,留下地址

http://blog.sina.com.cn/s/blog_4dde37650100b9ey.html

 

前几天用VS2005做了个简单的医务系统的演示程序,B/S模式的,里面用到了水晶报表,说实话,这还是我第一次用水晶报表,看了看帮助就开始做,还算是顺利吧,以为是演示用,要求不太高.做完了就发布,然后就把程序给人家了,结果到了人家那水晶报表那块不能看!他说水晶报表发布的时候需要考几个库,VS 发布的时候不能自己把dll文件打包放到里面去,我就把那两个文件(CRDesigner.dll,crvspackage.dll,放在VS安装目录的 Crystal Reports文件夹里)给人家考了过去,结果还是不行,后来上网查说需要Crystal Reports 合并模块,从网上down了一个,做一个了安装程序把它装上了也行不通,没办法回来了。
      今天参看以下帮助文件,说合并模块可以到http://www.businessobjects.com/products/dev_zone/net/2005.asp去下载,地址是假的,转到msdn上了。我想合并模块可能不行了,我就开始找Crystal Reports for .NET Framework 2.0 Windows 安装程序,结果发现VS2005的安装目录里已经有这些东西了,Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages这个文件夹里有好多东西,不光是水晶报表,还有框架,中文包,MDAC2.8以前不知道部署的时候还得从网上down这些东西,现在不用了!
从CrystalReports里把水晶报表装上就可以了!CRRedist2005_x86.msi/CRREdist2005_x86_chs.msi 这两个文件在MSDN里也有描述,下面是摘自MSDN
"如果添加的合并模块多于方案中指定的数目,可能会引起部署问题。将合并模块文件保存在计算机上的 C:\Program Files\Common Files\Merge Modules "
2005需要的合并模块式CrystalReportsRedist2005_X86.msm这个文件夹里没有!
还好问题解决了!

2008
-------------------------------

在安装有vs2008的电脑中,找到以下文件夹:
C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalReports10_5。

将该文件夹下的CRRedist2008_x86.msi,安装到在要部署的机器上即可。