Umbraco云项目内容恢复失败:无法获取指定ID父节点求助
我之前在维护Umbraco云项目时刚好碰到过一模一样的问题,折腾了好一阵才解决,给你几个亲测有效的排查和解决方向:
检查本地数据库的节点存在性
先登录本地Umbraco的数据库,在umbracoNode表(如果是Umbraco 10+版本,对应umbraco.Document相关表)里查询报错中提到的首页GUID。如果本地数据库里完全没有这个节点的记录,说明拉取代码后本地数据库初始化不完整,建议清空本地Umbraco数据库,重新执行构建和站点初始化,再尝试内容恢复。重新同步云环境的发布状态
虽然你说已经发布了所有内容,但Umbraco云的发布偶尔会出现节点依赖同步遗漏的情况。建议先在云开发站点里单独打开首页节点,点击保存并发布,然后再选择“发布整个站点”的选项(在内容树右键菜单里),确保所有节点的发布状态都正确同步到了Deploy工件库。清理本地Deploy缓存
Umbraco Deploy的本地缓存文件损坏是这类问题的高发原因。找到本地项目中的~/umbraco/Deploy/State目录,删除该目录下的所有文件,然后重启本地站点,再重新触发内容恢复操作。缓存清理后Deploy会重新从云环境拉取最新的工件数据,大概率能解决节点找不到的问题。核对Deploy版本兼容性
确认本地项目的Umbraco Deploy NuGet包版本和云环境的版本完全一致。版本不匹配会导致工件解析逻辑出现差异,进而引发依赖节点找不到的异常。你可以在云环境的后台查看Umbraco和Deploy的版本,然后在本地项目的Project.csproj(或packages.config)中调整对应包的版本,重新构建项目后再尝试恢复。分步测试节点恢复
先尝试单独恢复报错中提到的首页节点(umb://document/xxthexxxguidxofxxthexxhomepagexx),如果首页能成功恢复,再去恢复那个报错的子节点。如果单独恢复首页也失败,说明云环境中的首页工件可能存在损坏,这时候回到云站点重新编辑并发布首页,生成新的工件后再同步到本地。
内容的提问来源于stack exchange,提问作者Clark Kent

