从asp.net创建Excel文件时出错

时间:2014-04-24 09:21:02

标签: c# asp.net

我正在尝试使用c#创建一个excel文件。我的代码在Windows Server 2008上工作正常,但我在窗口服务器2012 R2,iis server 8.5,ms office 2007标准中遇到错误。 它在线告诉我错误

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

错误:[COMException(0x800a03ec):microsoft office无法保存或打开更多文档。

2 个答案:

答案 0 :(得分:1)

您正在尝试创建Excel文件

  • 使用COM自动化
  • 来自ASP.NET应用程序。

此组合为officially unsupported by Microsoft

  

Microsoft目前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office可能会出现不稳定Office在此环境中运行时的行为和/或死锁。

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

要从ASP.NET创建Excel文件,请使用其他各种可用解决方案之一:

(就个人而言,我对SpreadsheetLight有很好的经验,但任何其他解决方案都可以。)

答案 1 :(得分:0)

它可能不是你的代码的问题,因为它适用于Windows Server 2008.你可以尝试这个注册表黑客,但请记住,错误的注册表修改可能是致命的,所以你可能想要创建还原点或备份您的注册表:

  1. 运行> REGEDT32
  2. 修复以下内容的值: HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ User Shell Folders

  3. 在您的用户外壳文件夹中选择缓存密钥并将其分配到您自己的目录

  4. 如果没有修改注册表,我找到了针对您的问题的解决方案,请访问this链接或this one,这可能会对您有所帮助。如果这些都不适用于你,请尝试使用Google搜索“microsoft office无法保存或打开更多文档”并检查与excel本身相关的问题。再一次,我认为问题不在您的代码中。