首页 > 解决方案 > Microsoft O365 加载项“安装失败”

问题描述

我有一个有效且经过验证的加载项/清单,它通过了npm run validate. 我和数百名用户都可以通过链接下载我的清单。然而,一些用户一直面临这个错误:

无法安装此应用。清单 XML 文件无效。出于安全原因,此 XML 文档中禁止使用 DTD。要启用 DTD 处理,请将 XmlReaderSettings 上的 DtdProcessing 属性设置为 Parse 并将设置传递给 XmlReaderCreate 方法。

在此处输入图像描述

某些用户在什么情况下会出现这样的错误?

标签: office-jsoffice-addinsoutlook-web-addinsappsource

解决方案


我实际上在一年前就遇到了这个问题。就像@OutlookAdd-insTeam-MSFT 建议的那样,我也相信这与网络有关,特别是与 DNS 有关。

这是我能找到的,但不幸的是,我的客户再也没有回来确认它是否有用。

(请注意,部分文字引自底部列出的网站。)

错误信息

无法安装应用程序。清单 XML 无效。出于安全原因,此 XML 文档中禁止使用 DTD。要启用 DTD 处理,请将 XmlReaderSettings 上的 DtdProcessing 属性设置为 Parse 并将设置传递给 XmlReader.Create 方法。

为什么会发生这种情况?

当 O365 读取 manifest.xml 时,它正在通过 msoid.[organization_name].onmicrosoft.com 和 msoid.onmicrosoft.com 解析。如果失败(由于输入错误等),则会调用 HTTP 404 错误。此时,您的 ISP 的 DNS 服务器应该接管并提供根据其 CNAME 记录表解析地址。但是,某些组织可能会提供额外的 DNS 帮助。一旦 msoid 解析器服务检测到 404 错误,ISP 的 DNS 将尝试接管 DNS 解析(DNS 协助)。如果失败(由于缺少 CNAME 记录或拼写错误),它会将 HTML 格式的查询结果返回给 O365。它基本上是 HTTP 200 响应,O365 将其解释为成功的身份验证。在此 O365 开始处理 HTML 格式的响应之后,就好像它是原始 manifest.xml 一样。

可能的解决方案:

a) 确保客户端计算机上的 DNS 设置正确。

b) 临时切换到另一个 DNS 服务器(例如 Google DNS)

d) 关闭 DNS 协助服务(如适用)

请参阅以下文章了解更多信息:

https://www.codetwo.com/kb/dtd-prohibited/

https://www.veeam.com/kb2821

http://sharepointers.blogspot.com/2017/03/connect-pnponline-for-security-reasons.html

https://docs.microsoft.com/fi-fi/office365/admin/services-in-china/ purpose-of-cname?redirectSourcePath=%252fen-us%252farticle%252fWhat-s-the- purpose-of-the -Office-365-CNAME-record-for-msoid-19b67e2b-1b28-4432-8cca-394803fbdc87&view=o365-21vianet

https://blogs.msdn.microsoft.com/joerg_sinemus/2017/07/10/sharepoint-online-vanity-domain-powershell-csom-and-the-msoid-cname-record/


推荐阅读