解决方案检查器的常见问题和解决

本文列出您在使用解决方案检查器时可能会遇到的一些常见问题。 如果有,将提供解决方法。

无法使用解决方案检查器运行分析或下载结果

提交解决方案检查器请求以运行分析或下载结果后不久,操作未完成,并显示错误消息,如:

“我们无法在[解决方案名称]解决方案上运行检查。 请尝试重新运行。”

解决方案检查器会尽可能尝试返回具体错误消息,其中包含可能原因和解决步骤详细信息的链接。 选择了解更多了解详细信息。

错误消息栏。

在后台处理分析期间发生的失败将以无法完成状态失败,并在 Power Apps 门户返回错误消息,同时向请求者发送电子邮件通知。

错误状态。

选择门户通知将链接到这个常见问题页面以提供进一步的疑难解答。 如果提供的常见问题之一未解决问题,还将返回一个参考编号。 请向 Microsoft 支持提供此参考编号以进行进一步调查。

失败通知。

解决方案检查器无法检查默认解决方案

解决方案检查器从 Microsoft Power Platform 环境导出解决方案以进行分析。 不支持导出默认解决方案,且检查可能无法成功完成。 详细信息:解决方案检查器无法导出较大解决方案

解决方案检查器由于不支持的 Power Apps 检查器版本而失败

解决方案检查器是 Power Apps 检查器应用支持的功能。 如果您已安装了早于版本 1.0.0.47 的 Power Apps 检查器应用版本,解决方案检查器可能无法成功完成。 您应从 Power Platform 管理中心升级 Power Apps 检查程序版本。

但是,如果您安装了版本 1.0.0.45 以前的 Power Apps 检查器版本,我们建议您删除解决方案并重新进行安装。 由于最近的架构更改,从早于版本 1.0.0.45 的版本升级 Power Apps 检查器可能失败。

如果要保留解决方案检查器过去的结果,请使用将数据导出至 Excel 从以下表导出数据来导出之前运行的结果或导出所有解决方案检查器数据:

  • 分析组件
  • 分析作业
  • 分析结果
  • 分析结果详细信息

如何卸载 Power Apps 检查器

卸载 Power Apps 检查器解决方案:

  1. 作为系统管理员或系统定制员,转到 https://make.powerapps.com/environments 打开 Power Apps 门户。
  2. 选择解决方案
  3. 选择 Power Apps 检查器,然后在解决方案工具栏上,选择删除

如何安装 Power Apps 检查器

在您的环境中重新安装 Power Apps 检查器:

  1. 作为系统管理员或系统定制员,转到 https://make.powerapps.com/environments 打开 Power Apps 门户。
  2. 选择解决方案
  3. 在解决方案工具栏上选择解决方案检查器,然后选择安装

解决方案检查器不能访问处于“管理模式”的环境

放入管理模式的环境会有意将访问权限仅限制到具有系统管理员和系统定制员角色的用户。 由于 Power Apps 检查器应用程序标识默认不具有这些分派的角色,因此,它无法访问在此模式下运行的组织。

若要在此组织中使用解决方案检查器,必须禁用“管理模式”。

如何禁用管理模式

禁用组织实例的管理模式:

  1. 登录 Power Platform 管理中心

  2. 打开在运行解决方案检查器时遇到问题的环境,然后选择编辑

  3. 管理模式设置为已禁用,然后选择保存

    禁用管理模式。

  4. 再次运行解决方案检查器。

解决方案检查器由于缺少安全角色失败

解决方案检查器的应用程序用户需要以下分配的安全角色,以便提供与 Dataverse 组织进行通信所需的必要特权。 如果这些角色没有分配给用户 Power Apps 检查程序,运行分析、下载结果和运行取消的尝试都将失败。 这最经常在客户已部署了可移除意外用户的安全角色的自动化时发生。 以下安全角色包含最低必需权限:

  • 导出自定义(解决方案检查器)
  • 服务编写器
  • 解决方案检查器

如何分派缺少的安全角色

若要向 Power Apps 检查器应用程序用户分配缺少的安全角色:

  1. 在 Power Platform 管理中心中,打开您的环境,然后选择用户>应用用户列表
  2. 从用户列表中选择 Power Apps 检查器应用程序用户。
  3. 在命令栏上选择编辑安全角色
  4. 选中上面所列角色的复选框,然后选择保存
  5. 再次运行解决方案检查器。

解决方案检查器由于受限访问模式失败

解决方案检查器的应用程序用户需要非交互读写访问模式来与 Dataverse 组织通信。 如果访问模式已更改为其他值(例如管理),则运行分析、下载结果和运行取消的尝试将失败。

若要解决此问题,必须更新具有“非交互式”访问模式的 Power Apps 检查器应用程序用户。

如何更新用户访问模式

更新 Power Apps 检查器用户的访问模式:

  1. 在 Power Apps (make.powerapps.com) 中,选择您的环境,然后选择设置>高级设置>管理>用户以打开旧用户设置。

  2. 从用户列表中打开 Power Apps 检查器应用程序用户。

  3. 滚动到窗体的管理>客户端访问许可证 (CAL) 信息部分,然后在访问模式下拉列表控件中选择非交互式

    访问模式。

  4. 保存并关闭用户窗体。

  5. 再次运行解决方案检查器。

解决方案检查器由于禁用了应用程序用户失败

必须启用 Dataverse 组织中包含要分析的解决方案的 Power Apps 检查器应用程序用户。 如果禁用该应用程序用户,同一个组织中请求分析解决方案将失败。 如果收到此错误消息,请先验证是否确实禁用了 Power Apps 检查器应用程序用户。 然后按照下面提供的缓解步骤操作。

已禁用用户状态。

如何激活 Power Apps 检查器应用程序用户

  1. 在 Power Platform 管理中心中,打开环境,然后转到设置>用户的 + 权限>用户
  2. 应用程序用户视图中,选择 Power Apps 检查器应用程序用户。
  3. 在命令栏上,选择激活
  4. 确认激活用户邮件中,选择激活

解决方案检查器保持运行状态超过三十分钟

如果分析的解决方案包含使用 .NET Standard 2.0 开发的插件组件,解决方案检查器可能会无限期地保持在运行状态。 解决方案检查器当前不支持使用 .NET Standard 2.0 的插件,应将其排除在分析之外。 通过从目标解决方案中删除插件组件或使用 Power Apps 检查器 PowerShell 模块中的“ExcludedFileNamePattern”参数来排除插件组件。

导致解决方案检查器失败的常见插件条件

当解决方案检查器收到并处理分析请求时,它必须调用 Dataverse 终结点来接收/更新相关作业数据和导出所选解决方案。 解决方案检查器服务与 Dataverse 云进行的每次交互都可能触发已在请求中提交的消息内注册的一个或多个插件步骤。 然后,这些插件可能导致 Dataverse 无法正常处理消息,并干扰解决方案检查器处理请求的分析作业。 下载解决方案检查器作业结果或取消进行中的分析作业时,可能会出现类似情况。

解决方案检查器请求的典型 Dataverse 操作:

  • 检索解决方案、systemuser 和组织表格数据
  • 创建、更新和检索分析作业、分析组件和分析结果表数据
  • 导出解决方案

为了在未许可用户上下文中执行而注册的插件步骤

“未经许可用户”异常导致解决方案检查器失败时,通常是由为了在当前未经许可的特定系统用户的上下文中执行而配置的触发插件步骤导致的。 确保解决方案检查器可能触发的所有插件步骤都在已许可用户的上下文中执行。

重要提示

强烈建议将插件步骤配置为在调用用户的上下文中执行,而不是在应该调用为其分配的许可证的特定用户的上下文中执行。

插件步骤执行的操作所需权限未授予给 Power Apps 检查器应用程序用户

当因为缺少权限导致 Dataverse 拒绝访问而造成解决方案检查器失败时,通常是由于为了执行操作而触发的插件步骤所需权限限制未授予给 Power Apps 检查器应用程序用户。 请重新配置插件步骤,以便不执行解决方案检查器调用的操作,或为 Power Apps 检查器应用程序用户授予执行自定义插件步骤必需的权限。

InvalidPluginExecutionException 导致插件步骤意外中断执行

错误“ISV 代码终止了操作”或“ISV 代码中出现意外错误”可能导致解决方案检查器失败。 如果出现此情况,说明在通过引发 InvalidPluginExcecutionException 明确中断了触发的一个插件步骤的执行,或插件代码中未正确捕获错误。 请重新配置插件步骤,以便不执行解决方案检查器调用的操作,或调整插件实施,以便不基于解决方案检查器提供的条件中断执行。

解决方案检查器调用的一般操作包括创建和更新。 这些操作可在下表中执行:分析作业、分析组件或分析结果。

解决方案检查器由于在 Microsoft Entra ID 中禁用了第一方应用程序失败

解决方案检查器使用的第一方企业应用程序标识 (PowerApps-Advisor) 不应在 Microsoft Entra ID 中禁用。 如果禁用,在代表请求用户为 Dataverse 和其他所需资源提供商请求持有者令牌时此标识将无法进行身份验证。

请按照下面的步骤验证应用程序标识是否未在 Microsoft Entra 中被禁用,同时,如果有必要,启用应用程序。

如何验证和/或修改应用程序启用状态

验证和/或修改 PowerApps-Advisor 企业应用程序标识的启用状态

  1. Microsoft Entra 门户中访问您的租户。
  2. 导航至企业应用程序
  3. 选择所有应用程序,然后搜索PowerApps-Advisor

搜索 PowerApps-Advisor 应用。

  1. 选择PowerApps-Advisor查看应用详细信息。
  2. 选择属性
  3. 检查已为用户登录启用的状态。 如果为,则应用程序被禁用。

禁用的企业应用。

  1. 选择单选按钮控件将值切换到。 这将启用应用程序。

启用 PowerApps-Advisor 应用。

  1. 选择保存。 应用程序现在已启用。 您可能需要等待几分钟让更改传播。
  2. 再次运行解决方案检查器。

重要提示

您必须在 Microsoft Entra ID (Microsoft Entra ID) 中具有管理员特权才能编辑企业应用程序。

解决方案检查器无法导出具有草稿业务流程流组件的解决方案

如果解决方案包含之前从未激活的草稿状态的业务流程组件,则解决方案检查器将无法为分析导出解决方案。 此错误对于解决方案检查器不是唯一的,其由在后备(自定义)表组件(在业务流程第一次激活前未创建)上有依赖项的业务流程引发。 如果业务流程在解决方案资源管理器内激活动,也可能发生此问题。

请参考知识库文章 #4337537:导出无效 - 业务流程表缺失,了解此问题和解决步骤的详细信息。

解决方案检查器无法导出包含模型驱动应用组件的解决方案

如果解决方案中包含模型驱动应用,解决方案检查器可能无法导出解决方案以进行分析。 此错误是由基于角色的应用共享安全性导致的。 如果 Power Apps 检查器应用程序用户没有适当的权限访问模型驱动应用,包含它们的任何解决方案都将无法通过解决方案检查器导出。

若要解决此问题,请为 Power Apps 检查器应用程序用户授予环境制造者安全角色。

解决方案检查器无法导出已修补的解决方案

如果解决方案已应用了修补程序,解决方案检查器将无法导出解决方案以进行分析。 在解决方案应用了修补程序后,原始解决方案将被锁定,只要将解决方案确定为父解决方案的组织中有相关修补程序,其将无法更改或导出,

若要解决该问题,可以克隆解决方案,以便与解决方案相关的所有修补程都汇总到新建的解决方案中。 这将解锁解决方案并允许将解决方案从系统中导出。 有关详细信息,请参阅克隆解决方案

解决方案检查器不分析空解决方案

如果解决方案检查器导出未包含要分析的组件的解决方案,它将终止进一步处理并考虑运行失败。 请确保为解决方案检查器进行分析提交的选定解决方案至少包含一个组件。

解决方案检查器无法导出较大解决方案

从环境导出较大解决方案失败的主要场景包括导出请求中的超时异常。 如果请求超过 20 分钟,则会出现此情况。 大解决方案,如默认解决方案,可能无法在此时间期限内导出,检查将无法成功完成。 如果解决方案检查器在导出时遇到超时,它将重试三次,然后确定无法处理作业,因此您可能需要一小时时间收到失败通知。

解决方法是创建更小的解决方案,使其要分析的组件更少。 如果解决方案的文件很大是由于插件程序集组件太多,请参阅优化自定义程序集开发中的指导。

重要提示

为了尽可能减少误报,请确保您添加相关的自定义项。 当您创建解决方案和添加这些组件时,请包括以下内容:

  • 当您添加插件时,包括插件的 SDK 消息处理步骤。
  • 在添加表窗体时,包括附加到窗体事件的 JavaScript Web 资源。
  • 在添加 JavaScript Web 资源时,包括所有相关的 JavaScript Web 资源。
  • 当您添加 HTML Web 资源时,包括在 HTML Web 资源中定义的任何相关的脚本。
  • 在添加自定义工作流时,包含工作流中使用的程序集。

具有嵌入的 JavaScript 的 HTML 资源中问题的行号引用不正确

当在解决方案检查器内处理了 HTML Web 资源时,HTML Web 资源将在 HTML Web 资源内与 JavaScript 分开单独处理。 因此,在 HTML Web 资源的 <script> 内找到的冲突的行号将不正确。

Web 资源的 Web-unsupported-syntax 问题

解决方案检查器支持对 ECMAScript 2015 (ES6) 和最高 ECMAScript 2018 (ES9) 语法使用全局变量。 当解决方案检查器分析使用高于 ES6 的全局变量或高于 ES9 的语法的 JavaScript 时,将为 Web 资源报告不支持 Web 语法问题。

基于调用范围报告的插件和工作流活动的多个冲突

对于问题仅与调用上下文相关的插件和工作流活动规则,解决方案检查器工具将在 IPlugin 接口实现时开始分析,并遍历调用图表来检测该实现范围内的问题。 有时,许多调用路径可能到达检测到问题的相同位置。 由于此问题与调用范围相关,工具可能基于该范围报告来提供更好的影响图片,而不是基于不同位置。 因此,多个问题可能引用应该修复的一个位置。

app-formula-issues-high 可能显示与设计模式不同的错误数量

解决方案检查器将列出在应用中找到的错误数量,包括测试时的错误数量。 设计模式下的应用检查器仅显示屏幕控件和组件的错误。 如果设计模式下应用检查器中显示的错误计数较小,请打开 Test Studio 并在测试使用的表达式中搜索错误。

针对代码组件报告的解决方案检查器违规

在具有以调试模式构建的代码组件的解决方案上运行时,解决方案检查器会报告多个违规。 在调试模式下出现一个常见错误是 web-avoid-eval。 解决方案检查器用于验证用于生产用途的代码,因此必须根据您的构建系统使用正确的 buildMode 构建代码组件:npm run build -- --buildMode productionmsbuild /p:configuration=Release。 详细信息请参阅:创建和构建代码组件

如果有错误是发生在由代码组件引进的 bundle.js,可以从分析中排除此文件。 详细信息:Microsoft.PowerApps.Checker.PowerShell 模块PAC CLI

另请参见

Dataverse 的最佳实践和指南

模型驱动应用的最佳实践和指南