dongxiaoling1029

导航

C#导入Excel报错问题。

C#在调用Excel的API生成excel文件时,提示检索   COM   类工厂中   CLSID   为   {00024500-0000-0000-C000-000000000046}   的组件时失败,原因是出现以下错误:   8000401a”错误。

  解决方案是在服务器上安装Office,并配置DCOM权限。步骤如下:

  1. 配置  DCOM  中  EXCEL  应用程序: 
  2. 要在交互式用户帐户下设置  Office  自动化服务器,请按照下列步骤操作:  
  3. 1.  以管理员身份登录到计算机,并使用完整安装来安装(或重新安装)Office。为了实现系统的可靠性,建议您将  Office  CD-ROM  中的内容复制到本地驱动器并从此位置安装  Office。  
  4. 2.  启动要自动运行的  Office  应用程序。这会强制该应用程序进行自我注册。  
  5. 3.  运行该应用程序后,请按  Alt+F11  以加载  Microsoft  Visual  Basic  for  Applications  (VBA)  编辑器。这会强制  VBA  进行初始化。  
  6. 4.  关闭应用程序,包括  VBA。  
  7. 5.  单击开始,单击运行,然后键入  DCOMCNFG。选择要自动运行的应用程序。应用程序名称如下所示:  
  8. Microsoft  Access  97  -  Microsoft  Access  数据库 
  9. Microsoft  Access  2000/2002  -  Microsoft  Access  应用程序 
  10. Microsoft  Excel  97/2000/2002  -  Microsoft  Excel  应用程序 
  11. Microsoft  Word  97  -  Microsoft  Word  Basic 
  12. Microsoft  Word  2000/2002  -  Microsoft  Word  文档  
  13. 单击属性打开此应用程序的属性对话框。 
  14. 6.  单击安全选项卡。验证使用默认的访问权限和使用默认的启动权限已选中。  
  15. 7.  单击标识选项卡,然后选择交互式用户。  
  16. 8.  单击确定,关闭属性对话框并返回主应用程序列表对话框。  
  17. 9.  在  DCOM  配置对话框中,单击默认安全性选项卡。  
  18. 10.  单击访问权限的编辑默认值。验证访问权限中是否列出下列用户,如果没有列出,则添加这些用户:  
  19. SYSTEM 
  20. INTERACTIVE 
  21. Everyone 
  22. Administrators 
  23. IUSR_ <machinename> * 
  24. IWAM_ <machinename> * 
  25. *  这些帐户仅在计算机上安装了  Internet  Information  Server  (IIS)  的情况下才存在。  
  26. 11.  确保允许每个用户访问,然后单击确定。  
  27. 12.  单击启动权限的编辑默认值。验证启动权限中是否列出下列用户,如果没有列出,则添加这些用户:  
  28. SYSTEM 
  29. INTERACTIVE 
  30. Everyone 
  31. Administrators 
  32. IUSR_ <machinename> * 
  33. IWAM_ <machinename> * 
  34. *  这些帐户仅在计算机上安装有  IIS  的情况下才存在。  
  35. 13.  确保允许每个用户访问,然后单击确定。  
  36. 14.  单击确定关闭  DCOMCNFG。  
  37. 如果你之前起用了身份模拟  (在  web.config  中配置了  <identity  impersonate= "true "/>  )  ,需要删除之!  
  38. 15.更新安装office,把.net可编程组件安装到本机(excel组件) 
  39. 如果还是不行.干脃把交互式用户 换成"启动用户"  

posted on 2012-05-24 21:17  dongxiaoling1029  阅读(419)  评论(0编辑  收藏  举报