2014-04-24 110 views
0

我想用c#创建一个excel文件。我的代码在Windows Server 2008上工作正常,但是我在窗口服务器2012 R2,iis服务器8.5,ms office 2007标准中出现错误。 它告诉我的错误就行从asp.net创建Excel文件时出错

oWB = (Excel._Workbook)(oXL.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet)); 

error: [COMException (0x800a03ec):microsoft office can not save or open more documents.

+1

这可能是因为您打开的文档太多,可能是文档没有正确关闭/处理 – dmportella

+0

该框是否以64位运行? – rene

+0

它在64位上运行,也没有文件打开。 –

回答

1

您正试图创建一个Excel使用COM自动化

  • 从ASP.NET应用程序文件

    这种组合是officially unsupported by Microsoft

    Microsoft does not currently recommend, and does not support, Automation of Microsoft Office applications from any unattended, non-interactive client application or component (including ASP, ASP.NET, DCOM, and NT Services), because Office may exhibit unstable behavior and/or deadlock when Office is run in this environment.

    因此,如果它的工作,到目前为止您的Windows Server 2008上,这是偶然的巧合。你很幸运。这不是你应该在生产系统上做的事情。

    创建ASP.NET从一个Excel文件,使用各种可用的另一种解决方案:

    (就个人而言,我有SpreadsheetLight很好的经验,但任何的其他解决方案也不错)

  • 0

    这是可能的,这是不是你的代码有问题,因为它正常工作与Windows Server 2008中,您可以试试这个注册表破解,但请记住,错误的注册表修改可能是致命的,所以你可能要创建还原注册表的点或备份:

    1. 运行> REGEDT32
    2. 修正值:HKEY_CURREN T_USER \软件\微软\的Windows \ CurrentVersion \ Explorer中\用户文件夹壳

    3. 在您的用户文件夹壳选择缓存键,并将其分配给自己的目录

    也有解决方案,我发现您的问题没有注册表修改,请访问this链接或this one,它可能会帮助你。如果这些东西都不适用于您,请尝试使用Google搜索“Microsoft Office无法保存或打开更多文档”,并检查与Excel本身相关的问题。再一次,我认为这个问题不在你的代码中。