manifest v1.13版Teams应用在Outlook运行报Url无效错误
故障根因
- Outlook(含OWA网页端、新版桌面客户端)的扩展加载安全策略和Teams存在明确差异:Teams开发模式默认将
localhost本地回环地址加入调试白名单,允许静态选项卡直接加载本地开发服务地址,但Outlook扩展框架未放开该白名单,所有未做公网可信解析的本地回环地址都会被直接判定为无效URL,触发owa.ven.extframework.js:2 Uncaught (in promise) Url is invalid报错。 - Outlook侧强制要求所有扩展加载的选项卡资源必须使用HTTPS协议,如果你配置的localhost地址是
http://开头的非加密地址,即使在Teams侧可以正常加载,到Outlook侧也会直接触发URL校验失败。 - 你使用的manifest 1.13版本已支持Teams应用跨Outlook、Office等M365客户端运行,但跨端运行时会执行更严格的域名校验规则:一方面静态选项卡配置的URL域名必须在
validDomains可信域名列表内,另一方面localhost这类本地地址即使被加入validDomains,也无法通过Outlook侧的安全校验。
修复方案
- 本地调试场景:使用HTTPS隧道工具将本地运行的前端服务映射到公网可访问的HTTPS地址,可选择Teams Toolkit内置的调试隧道,或是ngrok这类第三方隧道工具。拿到公网HTTPS地址后,替换manifest中静态选项卡
contentUrl、websiteUrl字段里的localhost地址,同时将隧道的根域名(不带协议头、路径、端口号)加入manifest的validDomains列表,重新在Dev Portal上传更新应用后,即可在Outlook侧正常加载调试。 - 正式发布场景:直接将静态选项卡的地址替换为持有合法HTTPS证书的公网业务域名,将对应域名加入
validDomains列表即可,正式版本中禁止使用localhost这类仅本地可访问的地址。 - 配置校验:修改完manifest后逐一检查所有配置的URL均为HTTPS协议,不要出现HTTP开头的地址,避免触发协议层校验失败。
内容的提问来源于stack exchange,提问作者umgolla
相关产品推荐
相关产品推荐

