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

Umbraco 11 程序化设置内容调度无效,寻求解决方法

Umbraco 11 代码设置内容调度失效的解决办法

问题诊断

你当前的代码存在两个关键问题:

  1. ContentSchedule构造函数的第二个参数(文化名称)传入空字符串,Umbraco 11中调度需要明确指定文化(即使是默认文化,也应该传入内容对应的文化别名)。
  2. 仅调用contentService.Save无法确保调度生效,需要将内容发布,让调度关联到活跃的内容版本。

修正后的代码

// 获取内容对应的文化别名(多语言站点可替换为目标文化)
var cultureAlias = doc.GetCulture().Name;

// 创建过期调度项
var expireSchedule = new ContentSchedule(doc.Key, cultureAlias, expirationDate, ContentScheduleAction.Expire);

// 构建调度集合
var contentSchedules = new ContentScheduleCollection();
contentSchedules.Add(expireSchedule);

// 保存并发布内容,同时传入调度配置
contentService.SaveAndPublish(doc, contentSchedule: contentSchedules);

额外验证与注意事项

  • 确保expirationDate设置为未来时间,过去的时间不会触发调度逻辑。
  • 可通过contentService.GetContentSchedule(doc.Id)方法,验证调度是否已成功添加到内容中。
  • 如果内容无需发布(仅草稿状态设置调度),需调用contentService.Save时传入raiseEvents: true,触发调度系统的事件监听。

内容的提问来源于stack exchange,提问作者Random Developer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 13:50:04