【发布时间】:2018-03-14 09:59:55
【问题描述】:
我正在尝试使用 microsoft.office.interop.excel 创建 xlsx 文件。
当我在 VS 中使用 IIS express 运行 Web 应用程序时,它运行良好,但是当我在 VS 中使用本地 IIS 运行它时,我得到:
{"正在检索具有 CLSID 的组件的 COM 类工厂 {00024500-0000-0000-C000-000000000046} 由于以下原因而失败 错误:80070005 访问被拒绝。 (来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))。"}
我的服务器上出现同样的异常,服务器版本:windows server 2016, IIS版本:10.0.14393.0
注意:DCOMC 配置包含 Microsoft Excel 应用程序。
【问题讨论】:
-
与 IIS 相比,IIS express 的工作方式略有不同。由于开发需求,IIS Express 在安全性方面更加宽松。您可以切换到在 VS 配置中使用完整的 IIS(用于 Web 项目),然后检查它是否有效。如果没有,请尝试以管理员身份运行 VS,如果仍然无法正常工作,请检查您的 IIS 是如何配置的。希望这会有所帮助。
-
Microsoft Interop 的东西不喜欢以系统用户身份运行。将与 microsoft 交互的东西作为服务运行会很痛苦,而且 IIS 也可能会尝试以系统用户身份运行它。
-
服务器端办公自动化注定要失败。还有一些微软不支持的东西,blog.lextudio.com/…
-
老兄,不要关闭问题并将指向您博客的链接作为事实发布。这是不正确的,不要给你更多的答案。
标签: c# asp.net visual-studio iis excel-interop