none
程序部署到服务器使用微软Excel组件 8000401a问题,很棘手,急求帮助,谢谢各位大神! RRS feed

  • 问题

  • 在使用Excel组件的时候弹出以下错误

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

    这个错误应该是Excel组件服务没有启动

    现在遇到的问题是,我们的服务器要在开机未登录的状态下使用,这个时候就会弹出这个错误,如果有账户登录进去,运行就正常了。

    求助各位怎样在未登录的时候就可以启动这个Excel组件呢?数据库、IIS、VSS都可以启动的。

    我现在的设置是,win7系统,iis应用程序池是NetWork Servce,Dcom中Excel应用的访问和激活权限都添加了EveryOne和NetWork Service

    感谢各位大神,急救呀!

    2012年12月13日 3:10

答案

  • 的确没有,因为它不是以服务的形式运行。

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

    这篇文章你可以看下,个人觉得主要问题还是所使用的用户的问题,你可以看看“标识”的配置,

    那几个选项都可以尝试下,同时配合链接文章中提到的在asp.net中使用身份模拟的方式,可以组合测试。

    比如,我首先会想到的测试方式是,在你的IIS中,找到你的应用程序使用的应用程序池,然后使用此应用程序池的用户来设置“标识”,我会把三个用户都设置一遍来做测试。

    2012年12月13日 6:47

全部回复

  • 应该以 LocalSystem 启动服务。
    2012年12月13日 5:52
  • Excel组件里没有LocalSystem的权限,我用Everyone,IIS应用程序池改成LocalSystem之后还是这个问题
    2012年12月13日 6:05
  • 的确没有,因为它不是以服务的形式运行。

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

    这篇文章你可以看下,个人觉得主要问题还是所使用的用户的问题,你可以看看“标识”的配置,

    那几个选项都可以尝试下,同时配合链接文章中提到的在asp.net中使用身份模拟的方式,可以组合测试。

    比如,我首先会想到的测试方式是,在你的IIS中,找到你的应用程序使用的应用程序池,然后使用此应用程序池的用户来设置“标识”,我会把三个用户都设置一遍来做测试。

    2012年12月13日 6:47
  • 应用程序池的四个标识我都试过了,只有LocalSystem 和 NetWork Service 可以,但是都需要有账户登录才可以

    模拟身份的方法可以,但是这个项目要上线,在Config中给管理员账号很不安全

    不过你给的链接的第三个方法我可以试试,非常感谢你的帮助!

    2012年12月14日 1:16