提问人:Mitchell Brooks 提问时间:11/16/2023 最后编辑:Mitchell Brooks 更新时间:11/16/2023 访问量:22
如果无法加载所需的资源,是否可以防止我的 Excel OfficeJS 加载项从功能区中消失?
Prevent my Excel OfficeJS Add-In from disappearing from the Ribbon if it fails to load a required resource?
问:
我在内部 Excel OfficeJS 加载项中遇到了一种特殊的故障。
失败的原因是,如果 Excel 无法加载加载项资源,则会从功能区中删除该加载项,并且如果不重新启动 Excel,则无法使用或重新添加该加载项。
如果用户在未连接到 VPN 的情况下尝试使用加载项,则会特别发生这种情况。即使它们已连接到 VPN 并且可以访问加载项资源,也无法在不重新启动 Excel 的情况下使用加载项或将其还原到功能区。
理想的行为是,即使 Excel 无法加载资源,该图标也会保留在功能区中,并且每次用户尝试访问资源时,它都会对资源进行新的查询。
有没有办法实现这种行为?是在加载项清单中,还是在 Excel 中,还是在 ActiveDirectory 或 Office 365 配置中?还是其他方式?
下面的上下文转储,在太多上下文方面犯了错误:
加载项清单通过 Office 365 集成应用集中部署到我们的组织。
应用程序本身是一个静态的单页 e React 应用程序托管在我们自己的 (Apache) Web 服务器上的子目录中。
网络服务器只能通过我们的内部 VPN 访问。我们不发布 DNS 记录。
Web 服务器的位置是我们组织根域的内部子域的子域,例如
ourwebapp.subdomain-only-accessible-on-vpn.public-facing-website.tld
但我们只使用子域来引用它,例如
ourwebapp/add-in-subdirectory/index.html
并依靠我们集中配置的DNS后缀搜索列表来正确解析DNS(这很好用,如果我们使用完全限定的域名,我们会遇到单独的、不相关的证书问题)。
该位置在清单中指定为 。SourceLocation
当 Excel 启动时,如果用户不在 VPN 上,加载项将无法解析 的地址,并且(显然)无法下载应用程序的资源。(值得注意的是,这是一个不可解析的域,我不知道这是否会产生与返回 4xx 错误的可解析域不同的行为)。SourceLocation
应用程序的图标(以及所有其他静态资产)也托管在 Web 服务器上。
我尝试将图标资产移动到公共 URL,但仍然看到相同的行为。
加载项使用自定义函数,这些函数也托管在 Web 服务器上。
Excel 在右下角显示“安装加载项时出错”工具提示,提示“一个或多个加载项无法下载所需的资源”。
发生这种情况后,加载项图标将从功能区中消失,如上所述。即使浏览并单击加载项图标上的“添加”,也无法将图标还原到功能区或还原功能(即使是自定义函数等非任务窗格功能)。Add-Ins > Get Add-Ins > Admin Managed
如果我在使用 VPN 后重新启动 Excel,图标将(通常)自动重新出现在功能区中,尽管我们收到了一些用户的报告,他们必须去 Office 加载项对话框的“管理员管理”部分重新添加它。
正如我所提到的,理想的行为是,即使在下载资源时出错后,图标也不会消失,并且可以正常恢复。有没有办法实现这种行为,或者以其他方式改变我们的方法,这样对用户来说就不会那么痛苦了?
是否可以为清单中指定的资源指定回退,并且类似的东西可以解决问题?
答: 暂无答案
评论
https
are you connected to VPN?