我正在使用IIS7.5的64位Windows7上运行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若要释放更多内存,请关闭不再需要的工作簿或程序。
模板要释放磁盘空间,请从要保存的磁盘中删除不再需要的文件。例如: at Microsoft.Office.Interop.Excel.Workbooks.Add(Object u2022 )
1)我在apppool\ASP.NET配置中给了帐户IIS v4.0对MS Excel应用程序的完全控制权。
2)我给了IIS v4.0对‘C:\Windows\SysWOW64\ apppool\ASP.NET \systemprofile’的完全控制权,并在其中创建了一个桌面文件夹。
3)我需要继续使用Interop,尽管不推荐这样做。
4)该应用程序在Windows Server 2003/Windows XP 32位上运行良好。
5)机器上安装了MS Office 2010 (64位试用版)。
6)我不想更改应用程序。从ApplicationPoolIdentity到网络服务等的池标识。ApplicationPoolIdentity是IIS7中的新标识类型,建议使用它。
如果我在DCOM Config中选择“Interactive User”(我已经以管理员身份登录),它工作得很好,但它会导致其他问题。我需要使用‘启动用户’,它是ASP.NET v4.0。所以这看起来像是一个权限问题。
请帮帮忙。谢谢。
发布于 2013-07-06 02:40:26
右键单击文件资源管理器中的文件,选择Properties
,然后选择General
选项卡,然后单击Unblock
按钮。此错误消息非常具有误导性。
发布于 2013-04-23 06:08:41
在注册表编辑器(运行|注册表编辑) HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User外壳文件夹上转到此注册表项
将密钥缓存更改为类似于C:\Windows\Temp的内容
我类似的问题就是这样解决的。
致以敬意,
里普利
发布于 2015-03-26 16:13:36
我也有同样的问题,在我的服务器机器上没有内存问题,最后我能够通过以下步骤修复它
在您的应用程序托管服务器中的
3.在右侧找到"Microsoft Excel应用程序“。
4.右键打开其属性
5.在“标识”选项卡下,选择“交互式用户”选项,然后单击“确定”按钮。
再检查一次。希望能有所帮助
注意::但现在您可能会遇到另一个COM错误“正在检索组件的COM类工厂...”。在这种情况下,只需将身份设置为该用户,并输入具有足够权限的用户的用户名和密码。在我的例子中,我输入了一个高级用户组的用户。
https://stackoverflow.com/questions/12415690
复制相似问题