我创建了一个 Asp.Net Web 应用程序,它使用 Microsoft Visio 应用程序来执行某些功能。我还在服务器上安装了 Microsoft Visio 2019。为了实现此功能,我使用了 Microsoft Office Interop Visio 库。一切都在我的本地计算机上完美运行,但是,当我尝试部署它时,我遇到了权限问题,随后出现了错误消息。
根据微软论坛提供的建议,我尝试了以下解决方案:
打开DCOMCNFG,右键单击我的电脑,选择属性。
转到 COM 证券选项卡。
将“IIS_IUSRS”添加到访问权限并提供完全权限。
将“IIS_IUSRS”添加到启动和激活权限并提供完全权限。
在“身份”选项卡中将用户更改为交互式用户(仅当我登录到服务器时才有效)。
使用“此用户”和管理员帐户凭据,但是,这不起作用并导致 RPC 失败错误消息。
即使用户从远程连接注销,问题仍然存在。
有时,我还会收到以下错误消息:
由于以下错误,检索 CLSID 为 {00021A20-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败:8000401a 由于配置的标识不正确,因此无法启动服务器进程。检查用户名和密码。 (HRESULT 异常:0x8000401A)
我尝试将网络服务用户、所有人、匿名用户等添加到安全选项卡,但无济于事。
Microsoft 不推荐也不支持 Office 的服务器端自动化。为了避免性能和稳定性问题并确保遵守软件许可协议,Microsoft 建议开发人员在服务器端使用其他合适的工具和技术,例如 Open XML SDK,而不是直接依赖 Office 的服务器端自动化。
请注意,与 Word DocumentFormat.OpenXml.Wordprocessing 或 Excel DocumentFormat.OpenXml.Spreadsheet 不同,Visio 不存在专门的 OpenXml 包(库)。这意味着,您基本上需要使用纯 xml。
微软有一篇关于此的文章: