none
asp.net 程序服务器端执行excel程序权限问题? RRS feed

  • 问题

  • 程序开发环境:

    Windows 2003 32 标准版,IIS6,.net 3.5,office2007

     

    程序运行环境:

    Windows 2008 64 标准版,IIS7,.net 3.5,office2007

     

    Windows 2008下的相关配置:

    1. 服务器已安装office2007版本

    2.DCOM配置,Excel应用程序和Word应用程序的DCOM配置已标识身份已配置成“交互式用户”,且在安全选项中的“启动与激活”中已配置添加了“NETWORK SERVICE,并赋与了“本地启动”和“本地激活”权限。同时也在“访问权限”中添加了用“NETWORK SERVICE”用户组。

    3.IIS7 中的应用池也配置为“传统模式”,标识用户为“NETWORK SERVICE”,配置允许为Win32程序运行。

     

    Windows 2008下的错误信息提示:

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

     

    Windows Vista下的如上配置,程序运行正常,Windows 2008下抛出如上错误,实例化Excel.Application类时就抛错了。

     

    已经困扰了四天了,网上能搜的多搜到了呵,还是没有解决,快疯掉了。。。

     

     


    Sylon
    2009年5月19日 7:02

答案

  • 如果我没有记错的话,应当是64位操作系统下没有32位的OLEDB...除非把IIS强制到32位,否则无解.
    我当时一冲动把服务器升级到64位了,现在老asp的程序还是无法运行
    asp.net程序编译的时候指定x86平台,并打开IIS应用程序池的32位模式还可以
    期待Office2010


    guitarpark
    2009年5月19日 7:11
    版主

全部回复

  • 如果我没有记错的话,应当是64位操作系统下没有32位的OLEDB...除非把IIS强制到32位,否则无解.
    我当时一冲动把服务器升级到64位了,现在老asp的程序还是无法运行
    asp.net程序编译的时候指定x86平台,并打开IIS应用程序池的32位模式还可以
    期待Office2010


    guitarpark
    2009年5月19日 7:11
    版主
  • 感谢guitapark的回答,
    按你的回答有两种解决办法吗?

    第一、将IIS强制到32位,这个在IIS7中如何强制呢?
    第二、将asp.net编译时指定x86平台,设置应用池为32位的模式,可为什么我在64位服务器安装vs2008,调试时又系统可以正常运行的。


    Sylon
    2009年5月22日 5:34
  • 你看看这个吧,我原来也遇到过这样的问题 http://www.cnblogs.com/chenfulai/archive/2009/04/01/789425.html

    不过不记得是不是这样解决的了,你要记得把相应的DLL注册到IIS里面并给予相应的权限才行。。

    低调,低调
    2009年5月22日 5:52
    版主
  • 你看看这个吧,我原来也遇到过这样的问题 http://www.cnblogs.com/chenfulai/archive/2009/04/01/789425.html

    不过不记得是不是这样解决的了,你要记得把相应的DLL注册到IIS里面并给予相应的权限才行。。

    低调,低调

    谢谢你的回答,但你这篇文章的做法我都已经尝试过了,没有效果 ,不过,不明白你说的相应的DLL注册到IIS里面并受权,我这是一个asp.net 的Web应用项目,需要在服务器操作Excel和Word
    Sylon
    2009年5月22日 6:42
  • 应的DLL注册到IIS里面并给予相应的权限才行,同问  如何操作?
    2010年2月27日 10:33
  • 我的也是WINDOWS2008 X64的系统安装了OFFICE2007,连DCOM里面的EXCEL和WORD都没有出现,就看到一个CLSID为: {00024500-0000-0000-C000-000000000046}的组件,右键属性想修改一下,也没有权限..
    2010年5月19日 2:25