none
windows server 2008 R2(X64) with office 2010 (X86)asp vb 代码CreateObject("Excel.Application") 报错 结贴 RRS feed

  • 问题

  • 最近服务器从2003 32位 + office 32位更换至2008R2 64位+office 32位

    之前部署运行正常的系统,转移到新服务器后,一直报错。

    语句是:CreateObject("Excel.Application")

    尝试各种方式:

    1.dcomcnfg excel application添加everyone all权限

    2.系统部署添加everyone all权限

    3.应用程序池支持32位为true 

    4.C:\Windows\SysWOW64\config\systemprofile 添加Desktop文件夹 赋予erverone all权限

    BUT, 当我用mremote远程工具链接至我的服务器桌面的时候,此时此刻,出现了奇迹。程序运行正常,正常excel生成。

    So,最近几天,基本都是远程着服务器,提供客户正常访问。

    求大神~


    2013年5月31日 10:55

答案

  • 你说一直报错,那么这个错误具体信息是怎样的?

    你能给一个完整的示例代码并告知你是如何配置你的站点的吗?这样大家可以帮你重现这个问题并分析解决。

    如果你不便给出示例,那么建议你自己先用ProcessMonitor抓一下成功与失败的过程,然后做对比,找出关键线索。

    • 已标记为答案 xiaodongge 2013年6月1日 15:27
    2013年5月31日 13:19
  • 谢谢楼上的盆友~

    不过居然就是按照上面的,不知怎么的,就正常了。

    我是前面在dcomcnfg里面DCOM配置 excel application 里面

    常规选项卡设置为“调用”

    标识选项卡设置为“交互式用户”

    被我改回“默认“ 和”启动用户“

    就正常了。。。。。。。。。。。。

    差不多一个星期吧。终于算是落下帷幕。

    • 已标记为答案 xiaodongge 2013年6月1日 15:27
    2013年6月1日 15:26

全部回复

  • 你说一直报错,那么这个错误具体信息是怎样的?

    你能给一个完整的示例代码并告知你是如何配置你的站点的吗?这样大家可以帮你重现这个问题并分析解决。

    如果你不便给出示例,那么建议你自己先用ProcessMonitor抓一下成功与失败的过程,然后做对比,找出关键线索。

    • 已标记为答案 xiaodongge 2013年6月1日 15:27
    2013年5月31日 13:19
  • 谢谢楼上的盆友~

    不过居然就是按照上面的,不知怎么的,就正常了。

    我是前面在dcomcnfg里面DCOM配置 excel application 里面

    常规选项卡设置为“调用”

    标识选项卡设置为“交互式用户”

    被我改回“默认“ 和”启动用户“

    就正常了。。。。。。。。。。。。

    差不多一个星期吧。终于算是落下帷幕。

    • 已标记为答案 xiaodongge 2013年6月1日 15:27
    2013年6月1日 15:26
  • 最终的完整解决方案:待补充--刚好还有一台机子需要安装

    1.IIS应用程序池-高级设置-标识-内置账户-选择“networkservices”

    2.开始-运行-输入 mmc -32D  添加组件服务

    3.打开comcnfg,从能看到MS Excel Application 

    4.点击属性:启动和激活权限、访问权限、配置权限 添加everyone的all权限

    5.设置标识为“交互性用户”,否则语句“Workbooks.Add '添加工作簿”会失败

    6.设置excel输出文档为everyone的all权限

    7.重启下~

    2013年6月5日 0:48
  • 第二台Dell R720 装上windows 2008 R2勒。原2003服务器的部署系统搬迁过去。基本将excel的问题解决勒。

    1.开始-运行-输入 mmc -32  添加组件服务 然后保存

    3.打开dcomcnfg,查看到MS Excel Application 

    4.点击属性:启动和激活权限、访问权限、配置权限 添加everyone的all权限

    5.系统本地的存放excel文件的文件夹设置为everyone all权限。且去掉只读

    6.找到隐藏文件夹 C:\Windows\SysWOW64\config\systemprofile 添加Desktop文件夹 赋予erverone 读取权限

    以上基本能解决大部分的问题勒,可是2003服务器原先的程序比较特殊,包含一句:xlApp.Workbooks.Add '添加工作簿 

    因此还得多一步操作

    7.在xlApp.Workbooks.Add '添加工作簿 前面添加一行代码 xlApp.DefaultSaveFormat = 56 

    错误分析:

    一、假如没操作第6步,报以下错误信息:

    Microsoft Excel 错误 '800a03ec'

    Microsoft Excel 不能访问文件“**********\NullExcel.xls”。 可能的原因有以下几个: ? 文件名称或路径不存在。 ? 文件正被其他程序使用。 ? 您正要保存的工作簿与当前打开的工作簿同名。

    二、有代码xlApp.Workbooks.Add 不操作第7步骤,报以下错误信息:

    Microsoft Excel 错误 '800a03ec' 

    内存或磁盘空间不足,Microsoft Excel 无法再次打开或保存任何文档。 ? 要想获得更多的可用内存,请关闭不再使用的工作簿或程序。 ? 

    要想释放磁盘空间,请删除相应磁盘上不需要的文件

    三、请谨慎设置dcomcnfg里的标识为“交互性用户” 默认为“启动用户”

    设置为“交互性用户”,带来的问题就是会创建excel application 失败 

    CreateObject("Excel.Application")  ‘创建失败

    如果有高手,能设置为“交互性用户”,且在服务器上创建成功的,请留言指教[我本机也是可以的,但是系统搬迁到服务器后,就是不行]


    2013年6月15日 9:30