You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用OutputCaching缓存Blazor站点出现组件记录列表无效错误如何修复

问题根因

该报错是Blazor Server预渲染生成的组件描述符校验令牌默认5分钟有效期导致的:你设置的12小时页面缓存时长远超过该阈值,缓存过期前用户访问页面时,页面携带的已过期组件描述符无法通过服务端校验,就会触发该错误,所有Blazor组件停止交互。

解决方案

1. 直接修改组件描述符超时时间

.NET 6及以上版本支持全局调整该超时阈值,直接匹配你的输出缓存时长即可,在服务注册处添加如下配置:

builder.Services.AddServerSideBlazor(options =>
{
    // 将组件描述符有效期调整为12小时,和页面缓存时长保持一致
    options.ComponentDescriptorsExpiration = TimeSpan.FromHours(12);
});

2. 无需修改全局配置的规避方案

如果不想调整全局的校验时效,也可以通过拆分缓存范围解决冲突:

  • 放弃全页缓存,只对页面内不包含Blazor组件的静态区域使用片段缓存,用<cache>标签包裹静态内容,Blazor组件渲染区域保持动态生成
  • 若必须使用全页缓存,可关闭对应页面的Blazor预渲染功能,页面加载时Blazor组件实时渲染生成有效的组件描述符,不会和缓存的静态内容产生冲突

内容的提问来源于stack exchange,提问作者Arn Vanhoutte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 23:24:01