使用监视器调试画布应用

监视器默认适用于所有画布应用。 使用监视器,您可以在 Power Apps Studio 的创作体验中跟踪画布应用中发生的事件,还可以使用监视器调试画布应用的已发布版本。 详细信息:监视器概述

开始在画布应用中使用监视器

在创作应用时打开监视器

  1. 登录到  Power Apps

  2. 创建 新应用或 编辑现有应用

  3. 在左侧窗格中,选择 高级工具

  4. 选择 打开监视器

    打开监视器。

此操作将在新的浏览器标签页中打开监视器,并将其连接到您现有的 Power Apps Studio 会话。

监视器 - 已打开。

一条通知将显示在顶部,作为 Studio 会话显示当前监视会话。

提示

监视器对您的应用没有任何影响。 您可以在测试环境或生产环境中将监视器与任何应用一起使用。

为已发布应用打开监视器

您还可以使用监视器在 Web 播放器中调试已发布的应用。

为已发布应用打开监视器

  1. 登录到  Power Apps

  2. 选择左侧窗格中的 应用

  3. 从列表中选择一个应用。

  4. 从菜单中选择 监视器 。 或者,您可以选择 更多命令 (...),然后选择 监视器

    为已发布应用打开监视器。

  5. 选择播放已发布应用

    播放发布的应用。

此操作将在新的浏览器标签页中打开已发布的应用,并将其连接到您当前的监视器会话。 在将应用加载到 Web 播放器中以及在您与已发布应用进行交互时,您会在监视器中立即看到事件。

监视器还会显示一条通知,通知您当前打开的监视会话针对的是应用的已发布版本。

已发布应用会话。

适用于在 Power Apps 移动设备中运行的应用(预览版)

按照上述步骤操作,但选择复制监视链接,而不是播放发布的应用。 在您的设备上使用复制的链接打开已发布应用的受监控会话。 确保使用 Power Apps 移动设备(而不是浏览器)打开此链接。

备注

https://make.preview.powerapps.com 中提供了复制监视链接

复制监视链接。

设置:调试已发布应用

如果要在监视器中查看已发布应用的源表达式,需要打开设置以使用该应用发布表达式。 此设置类似于在传统开发中生成调试文件。 使用您的应用发布源表达式是可选的。 即使关闭此设置,您也可以查看应用中发生的事件,但无法将这些事件映射到特定表达式或公式。

要启用此设置,转到文件 > 设置,然后打开调试已发布应用

备注

启用此设置会对所有用户的应用性能产生不利影响。 为了尽量减少此影响,在调试已发布的应用时,一旦不再需要查看源表达式,就立即禁用此设置。

调试已发布应用。

在监视器中查看事件

要从您的应用查看事件,请在 Power Apps Studio 中播放应用。 然后,监视器将在事件发生时显示事件表以及特定的详细信息。

在事件发生时查看事件。

示例:将监视器用于画布应用

在此示例中,您将使用 罗斯文示例解决方案中随附的罗斯文示例数据应用。

罗斯文示例解决方案 是一个画布应用,将示例数据加载到 Microsoft Dataverse 中。 您也可以创建一个新应用,或使用现有应用。

背景

考虑已部署应用且该应用的初始版本性能下降的情况。 应用还会间歇性地生成没有清晰模式的错误。 在大多数情况下,在应用中加载数据会成功,但有时会失败。

在检查监视器时,会看到预期的数据操作。 但是,您还会看到几个 HTTP 状态代码为 429 的响应,指示在特定时间范围内请求过多。

当您选择此类事件时,会看到错误“超出速率限制。 请在 XX 秒后重试。”

示例场景 - 错误 429。

分析

此问题需要进一步分析,来了解为什么请求受到限制。 在监视器中,您看到,每个 createRow 调用都有来自 ProgressCount.Text 属性的几个 getRows 请求,分别指向不同的实体。 这些实体不是应用为其创建行的实体。 在监视器中可以看到 ProgressCount.Text 公式,如下图所示。

错误 429 - 公式。

对于添加的每个记录,会再次计算此公式,并在多个实体上调用 CountRows 。 此行为导致日志中出现 getRows ,因为没有为 Dataverse 委派CountRows 。对于每个要添加记录的单个请求,您可能会额外发起 12 个请求来统计每个实体中的行。

这些额外的请求会间歇性地导致错误,因为 Dataverse 平台在限制对服务的请求。 这还将说明整体性能问题。

后续步骤

使用监视器进行协作调试

另请参阅

高级监视
使用监视器调试模型驱动应用

备注

您能告诉我们您的文档语言首选项吗? 进行简短调查。(请注意,此调查是英文版调查)

此调查大约需要七分钟。 不会收集个人数据(隐私声明)。