C#ASP.NET Excel Interop错误 - 没有足够的可用内存

时间:2017-12-20 17:49:35

标签: c# asp.net excel interop

我有一个ASP.NET Webforms应用程序,它使用以下代码创建一个excel工作簿:

Excel._Workbook oWB = (Excel._Workbook)(oXL.Workbooks.Add(Missing.Value));
...
oWB.SaveAs(@"C:\bws\bsite\Reports\productionmatrix" + timeStamp + ".xls", Excel.XlFileFormat.xlWorkbookNormal);

当应用程序尝试保存文件时,出现以下错误:

  

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

     

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

     

•要释放磁盘空间,请从要保存的磁盘中删除不再需要的文件。

要解决此问题,我尝试了以下操作:

使用dcomcnfg for Network Service更新了Microsoft Excel Application中的属性设置,以允许本地和远程启动和激活。我还将IIS中此站点的应用程序池的标识设置为NetworkService。我将保存这些文件的文件夹的权限更改为对网络服务用户的完全控制。

博客网站建议我使用dcomcnfg将Microsoft Excel应用程序的识别更改为:交互式用户。但是,这会导致以下错误:

  

由于以下错误,检索CLSID为{00024500-0000-0000-C000-000000000046}的组件的COM类工厂失败:80070005拒绝访问。 (HRESULT异常:0x80070005(E_ACCESSDENIED))。

我还将ASP.NET Impersonation设置为启用,这会导致以下错误:

  

HTTP错误500.24 - 内部服务器错误   检测到的ASP.NET设置不适用于集成管理管道模式。

有人可以建议进行修改以使应用程序能够保存Excel电子表格吗?

0 个答案:

没有答案