none
IIS7 保存excel 打开PPT 文件出错 RRS feed

  • 常规讨论

  • 我们开发了一个web网站,其中有一个功能是,根据数据库里的数据生成word,excel,ppt文档,在windows 2003 标准版,iis6 ,office2003(sp3), fat32(IIS发布的网站文档所在的盘的格式)可以生成word,excel,ppt并可以下载,
       但是在windows 2008 版业版  iis 7 ntfs,office2003(sp3) 下不能生成并下载,
     
       出问题的地方 生成ppt时是在打开模版文档出错 presentation = ppt.Open(templateFile,  Microsoft.Office.Core.MsoTriState.msoFalse,  Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoFalse); 
    错误信息是: System.Runtime.InteropServices.COMException (0x80004005): PowerPoint could not open the file.
     
    生成excel时出错的地方是: CurBook.SaveAs(strFilePath, Excel.XlFileFormat.xlWorkbookNormal, mValue, mValue, mValue, mValue, Excel.XlSaveAsAccessMode.xlShared, mValue, mValue, mValue, mValue, mValue);
    错误信息是:
    System.Runtime.InteropServices.COMException (0x800A03EC): 异常来自 HRESULT:0x800A03EC
     
    我做过的一些操作:
    1:  打开ppt或保存excel的文件夹我确保已设置用户可以访问的权限(设置过的用户有: Authenticated Users,netword service ,IUSR_前缀用户 分配的权限是: 完完控制以外的所有权限 ) 设置权限后重启过电脑
    2: 在组件服务的DCOM中访问权限和启动激活权限都没加了相关的用户,所有的本地权限都会配了(我做过两次尝试,一次在组件服务的我的电脑,属性,COM安全中编辑默认值,还有在DCOM的microsoft excel 应用程序属性中设置,交互式用户和启动用启都尝试过)
    3: <identity impersonate="true" userName="服务器系统用户名" password="服务器系统密码"/>,放在<system.web>下
    4:尝试更换成office2007
    做了这些操作问题依旧,
     
    我在同样的环境下(同一台主机 windows 2008 版业版  iis 7 ntfs,office2003(sp3)) 安装了VS2008 ,运行代码 测试一切正常, 就是部署在IIS里不可以
    我的IIS设置了启用了32位程序, 因为我要连接access文件, access 是2003版,  在IIS7里访问也一切正常 
    在编辑excel文档时Excel.Cells 的下标不为0.  尝试过NETWORKSERVICE 设置为administrator的权限,
    将office 改成2007 时, saveas excel时的错误信息是System.Runtime.InteropServices.COMException: 内存或磁盘空间不足,Microsoft Office Excel 无法再次打开或保存任何文档。要想获得更多的可用内存,请关闭不再使用的工作簿或程序。要想释放磁盘空间,请删除相应磁盘上不需要的文件(磁盘空间(还有60多G空闲空间)和内存(只4G ,只用2G多一点点)一定够)
    2010年9月7日 4:35

全部回复