为什么 ASP.NET Web 应用程序在 运行 来自 cmd 的 .exe 时运行良好,但从 IIS 抛出错误?

Why ASP.NET Web App works well when run the .exe from cmd but throws an error from IIS?

它是关于 ASP.NET 执行简单的 Visio Office 自动化的 Web 应用程序——将文件从 vsdx 转换为 svg。

我已经知道不建议在 Microsoft 文档中在服务器端执行此操作 MS但是,只有 Visio 将我复杂的图表转换正确Aspose 也转换错误)。

该应用程序在我的 PC(windows 10 Enterprise)上以任何方式运行良好,从 VS 以 IISExpress/Project/Executable/IIS 启动时,甚至从 IIS 本身。 但是,在服务器(Windows Server 2019 Standard)上,只有当我 运行 它作为 cmd 中的 exe 但抛出错误时,该应用程序才能正常运行(消息:“发生异常”。不再有有用的信息)来自 IIS 的以下几点:

using Visio = Microsoft.Office.Interop.Visio;
Visio.InvisibleApp visioInvisibleApp = null;
...
Visio.Document doc = visioInvisibleApp.Documents.Open(vsdxSourcePath);

有什么区别,我怎样才能让它在 IIS 上运行?

请注意,它与关于此问题的所有其他问题略有不同,因为它在我的 PC 上 IIS 上已经运行良好,只是在服务器.

终于! 只是应该通过以下方式授予许可: 组件服务 -> 计算机 -> 我的电脑 -> DCOM 配置 -> Microsoft Visio 2003-2010 绘图

  1. 右击
  2. 属性
  3. 在“安全”选项卡中 -> 将所有 3 个选项中的“使用默认值”更改为“自定义”。
  4. 在“身份”选项卡中 -> 更改为“此用户”选项并填写您的详细信息。
  5. 申请并确定

现在 Office 应用程序(在我们的例子中是 Visio)应该可以工作了!