排查工作项表单缓存问题

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

若要在客户端或浏览器中快速呈现工作项,IndexDB 进程会缓存多个数据元素。 缓存规则中存在一个已知问题,可能会导致服务器端规则重新评估延迟。

此问题可能会导致添加到工作项类型的规则评估不当。 具体而言,在 Web 浏览器中修改工作项并更改用户的组成员身份会导致评估条件规则的方式发生更改时,会出现此问题。 例如,将用户添加到解除受限状态更改的组,但用户的浏览器不会立即接受用户状态更改。

如果遇到此问题且不采取任何操作,则问题将自行解决。 每个用户的缓存每三天自动更新一次,并完整更新成员身份信息。 否则,可以按照本文后面的 Clear the IndexDB 缓存 中提供的说明解决此问题。

有关问题原因的背景信息

每个工作项都使用 IndexedDB 来缓存工作项类型信息和其他元数据。 信息中包含的是添加到工作项类型的规则。 服务器端评估基于用户和组的规则限制。 基于评估将禁止或允许某些操作的权限应用于用户。

对于 继承的进程模型,条件规则包括具有以下条件的规则:

User and group membership conditions, Inherited process

对于 托管的 XML本地 XML 进程模型,条件规则包含具有 fornot 属性的规则,例如:

<FIELD name="Triage Description">
    <READONLY not="[Project]\Triage Committee" />
</FIELD>

始终从 Web 缓存评估规则。 不会实时重新评估受用户或组成员身份更改影响的规则。 虽然潜在的解决方案是在进行成员身份更新时使缓存失效,但此解决方案会针对性能约束运行。

如何避免此问题

若要避免首先触发此问题,请考虑在创建工作项之前自行添加到所有相关团队。 此操作可确保缓存存储正确的信息。

清除 IndexDB 缓存

如果缓存存储过时的规则,则可以等待客户端缓存在三天内过期,也可以清除缓存。 若要清除缓存,请在浏览器命令窗口中运行以下命令,然后刷新浏览器:

window.indexedDB.deleteDatabase("wit")