我使用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要释放磁盘空间,请从您要保存的磁盘中删除不再需要的文件:Microsoft.Office.Interop.Excel.Workbooks.Add(Object Template)
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.所以看起来这是一个许可问题.
请帮忙.谢谢.
iis-7 office-interop excel-interop asp.net-4.0 windows-7-x64