26

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

在 line wBook = wBooks.Add(Missing.Value);,它会引发以下错误:

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

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

u2022 要释放磁盘空间,请从要保存到的磁盘中删除不再需要的文件。:在 Microsoft.Office.Interop.Excel.Workbooks.Add(Object Template)

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

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

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

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

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

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

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

请帮忙。谢谢你。

4

7 回答 7

43

使用文件资源管理器右键单击文件,选择Properties,然后General选项卡并单击Unblock按钮。此错误消息非常具有误导性。

于 2013-07-05T18:40:26.460 回答
18

转到注册表编辑器上的此项(运行 | Regedit) HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell 文件夹

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

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

问候,

里普利

于 2013-04-22T22:08:41.250 回答
7

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

  1. 在您的应用程序托管服务器中,转到其“组件服务”
  2. 在此处输入图像描述

3.在右侧找到“Microsoft Excel 应用程序”。

4.右键打开属性

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

再次检查。希望能帮助到你

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

于 2015-03-26T08:13:35.927 回答
5

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

cmd => dcomcnfg

点击

组件服务>计算>我的电脑>Dcom config>并选择micro soft Excel Application

右键单击 Microsoft Excel 应用程序

属性>授予 Asp.net 权限

选择身份表>选择交互式用户>选择确定

于 2015-10-07T10:12:06.927 回答
2

我也遇到了同样的情况,谷歌搜索了几次后发现了两种解决方案。希望这可以帮助。

方式01:

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

方式02:

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

于 2019-04-01T02:00:30.440 回答
0

在 DCOM 配置中授予必要的权限后,我还需要将 IIS 中的应用程序标识更改为自定义帐户

于 2019-10-19T21:54:51.230 回答
0

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

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

  • C:\Windows\Temp确保它存在并且它不会提示你输入。

于 2019-04-18T17:48:20.843 回答