【发布时间】:2015-08-26 15:53:53
【问题描述】:
我有一个 Web 应用程序,用户在其中运行查询(通过 Web 界面)并以 excel 格式获取输出。有时,此输出包含超过 300k 条记录。用户需要这些数据进行进一步研究。
现在为了加快创建如此大数据量的动态 Excel,我们使用“Microsoft.Office.Interop.Excel”COM 对象。
我们的代码在内置的 asp.net 开发服务器上运行良好。但是,当托管在 IIS 上时,它会给我们“拒绝访问”错误(具体错误如下所示)。
由于以下错误,检索 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败:80070005 访问被拒绝。 (来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))。
我已将所有权限授予 IIS 用户,但仍然无法正常工作。 我已经尝试过 Windows Server 2012 R2 和 Windows 7 操作系统,但它们都不能正常工作。
我已对“DCOMCNFG”进行了更改,并在“COM 安全”选项卡下授予网络用户访问权限。
我可以采取哪些其他步骤来完成这项工作?
【问题讨论】:
-
会不会和文件系统文件夹的权限有关?
-
我已授予此项目所在的整个文件夹的完全写入权限。
-
您是否将 IIS 中的应用程序池用户包含在该权限列表中?
-
@Dryadwoods,是的,我有。此外,我还将应用程序池标识修改为“本地系统”。
标签: c# asp.net excel iis iis-7.5