我正在使用 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(Object Template)
1) 我在 DCOM 配置中给予了 IIS apppool\ASP.NET v4.0 对 MS Excel 应用程序的完全控制。
2) 我在 'C:\Windows\SysWOW64\config\systemprofile' 上为 IIS apppool\ASP.NET v4.0 分配了完全控制,并在其中创建了一个桌面文件夹。
3) 尽管不推荐使用,但我需要继续使用 Interop。
4) 应用程序在 Windows Server 2003/Windows XP 32 位上运行良好。
5) 机器上安装了 MS Office 2010(64 位,试用版)。
6) 我不想将应用程序池标识从 ApplicationPoolIdentity 更改为 Network Service 等。ApplicationPoolIdentity 是 IIS 7 中的新类型的标识,并且是推荐使用的。
如果我在 DCOM 配置中选择“交互式用户”(我已经登录为管理员),它可以正常工作,但会导致其他问题。我需要使用“启动用户”,即 ASP.NET v4.0。所以看起来这是一个权限问题。
请帮忙解决。谢谢。