如何修复'Microsoft Excel无法打开或保存更多文档'

时间:2012-09-13 22:29:31

标签: iis-7 asp.net-4.0 office-interop windows-7-x64 excel-interop

我使用IIS 7.5在Windows 7 64位上运行C#ASP.NET 4.5 Web应用程序。它使用的应用程序池名为“ASP.NET v4.0”,其标识为ApplicationPoolIdentity。该应用程序使用MS Office Interop(Microsoft Excel 14.0对象库)。

在第wBook = wBooks.Add(Missing.Value);行,它会抛出以下错误:

  

Microsoft Excel无法打开或保存更多文档,因为那里   没有足够的可用内存或磁盘空间。

     

u2022要提供更多可用内存,请关闭工作簿或程序   不再需要。

     

u2022要释放磁盘空间,请从中删除不再需要的文件   你保存到的磁盘:at   Microsoft.Office.Interop.Excel.Workbooks.Add(对象模板)

1)我在DCOM配置中的MS Excel应用程序上给了帐户IIS apppool \ ASP.NET v4.0完全控制。

2)我在'C:\ Windows \ SysWOW64 \ config \ systemprofile'上给了IIS apppool \ ASP.NET v4.0完全控制,并在其中创建了一个Desktop文件夹。

3)我需要继续使用Interop,但不推荐使用。

4)该应用程序在Windows Server 2003 / Windows XP 32位上运行良好。

5)计算机上安装了MS Office 2010(64位,试用版)。

6)我不想改变应用程序。从ApplicationPoolIdentity到网络服务等的池标识.ApplicationPoolIdentity是IIS 7中新的标识类型,建议使用它。

如果我在DCOM配置中选择“交互式用户”(我已经以管理员身份登录),它可以正常工作,但它会导致其他问题。我需要使用“启动用户”,这是ASP.NET v4.0。所以看起来这是一个许可问题。

请帮忙。 谢谢。

7 个答案:

答案 0 :(得分:35)

右键单击包含文件资源管理器的文件,选择Properties,然后选择General标签,然后点击Unblock按钮。此错误消息非常容易引起误解。

答案 1 :(得分:14)

在注册表编辑器上转到此键(运行| Regedit) HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \用户外壳文件夹

将密钥缓存更改为 C:\ Windows \ Temp

我的类似问题就这样解决了。

此致

里普利

答案 2 :(得分:5)

我有同样的问题,我的服务器机器中的内存没有问题,最后我能够通过以下步骤修复它

  1. 在您的应用程序托管服务器中,转到“组件服务”
  2. enter image description here
  3. 3.在右侧找到“Microsoft Excel Application”。

    4.右键单击

    打开其属性

    5.在“身份”选项卡下,选择交互式用户选项,然后单击“确定”按钮。

    再次检查。希望它有所帮助

    注意:但是现在您可能会遇到另一个COM错误“检索组件的COM类工厂......”。在这种情况下,只需将身份设置为此用户,然后输入具有足够权限的用户的用户名和密码。在我的情况下,我进入了高级用户组的用户。

答案 3 :(得分:5)

像这样测试。有时,权限问题。

  

cmd => DCOMCNFG

点击

  

组件服务>计算>我的电脑> Dcom配置>并选择   微软Excel应用程序

右键单击“Microsoft Excel应用程序”

  

属性>授予Asp.net权限

     

选择身份表>选择互动用户>选择确定

答案 4 :(得分:0)

我也遇到相同的情况,在多次搜索后发现了两个解决方案。希望这会有所帮助。

方法01:

在尝试在Excel中打开文件之前,请在Windows的文件资源管理器中找到它。右键单击该文件,然后选择“属性”。在“常规”选项卡的底部,单击“取消阻止”按钮。取消阻止文件后,Windows应该记住并且Excel不会再询问您。 此选项可用于某些文件类型,但不适用于其他文件类型。如果没有“取消阻止”按钮,请使用方法2。

方法02:

如果通常将下载的Excel文件存储在一个文件夹中,则此选项更好。在Excel中,单击文件»选项»信任中心»信任中心设置»受信任位置。点击添加新位置。浏览到存储Excel文件的文件夹,选择也信任此位置的子文件夹,然后单击确定。

答案 5 :(得分:0)

如果以上方法均无效,请尝试以下方法:

  • Component services >Computes >My Computer>Dcom config>Microsoft Excel Application>Properties中,转到“安全”选项卡,在所有三个部分上单击“自定义”,然后添加要运行该应用程序的用户,并向该用户授予完全权限。

  • 转到C:\Windows\Temp确保存在,并且不提示您输入。

答案 6 :(得分:0)

在DCOM配置中授予必要的权限后,我还需要将IIS中我的应用程序的身份更改为custom account