从Umbraco 10升级到13后,/mediatype/GetAllowedChildren接口返回404错误
Umbraco 10升级至13后媒体板块404错误的修复方案
1. 确认路由与Umbraco中间件配置
- 检查
Program.cs中Umbraco服务注册顺序,确保AddUmbraco()后正确调用AddBackOffice()和AddWebsite(),且UseUmbraco()在UseRouting()和UseEndpoints()之前执行:var builder = WebApplication.CreateBuilder(args); builder.CreateUmbracoBuilder() .AddBackOffice() .AddWebsite() .AddDeliveryApi() .AddComposers() .Build(); var app = builder.Build(); app.UseUmbraco() .WithMiddleware(u => { u.UseBackOffice(); u.UseWebsite(); }) .WithEndpoints(u => { u.UseInstallerEndpoints(); u.UseBackOfficeEndpoints(); u.UseWebsiteEndpoints(); }); - 确认没有自定义路由拦截
/mediatype/*路径,避免路由冲突导致404。
2. 校验uSync媒体类型同步有效性
- 打开
appsettings.json,检查uSync配置中是否启用了媒体类型同步:"uSync": { "Settings": { "DefaultSet": "Default", "ExportOnSave": true, "ImportAtStartup": true }, "Sets": { "Default": { "Handlers": { "MediaType": { "Enabled": true, "Actions": "All" } } } } } - 进入Umbraco后台的uSync仪表板,执行Import All操作,确保媒体类型(如Folder、Image)被正确同步到新数据库。
- 直接查看数据库
umbracoMediaType表,确认存在基础媒体类型记录,若缺失,可从Umbraco 10备份数据库中导入或手动创建。
3. 清理缓存与静态资源
- 后台进入
Settings > Cache,点击Clear All Cache清理服务器端缓存。 - 删除项目根目录下的
wwwroot/umbraco文件夹,重启项目让Umbraco重新生成后台静态资源。 - 浏览器端按
Ctrl+Shift+R强制刷新,清除前端缓存。
4. 检查用户权限与身份验证
- 进入
Users > User Groups,确认当前用户所属组拥有Media板块的全部权限(创建、编辑、删除等)。 - 验证Umbraco身份验证中间件未被自定义逻辑拦截,确保API请求能正常通过身份验证。
5. 排查NuGet包版本冲突
- 使用
dotnet list package命令检查所有Umbraco相关包版本,确保Umbraco.Cms、uSync.Complete等包均为Umbraco 13兼容的最新稳定版,无跨版本混合。 - 若存在版本不一致,执行
dotnet add package [PackageName] --version [CompatibleVersion]更新到匹配版本。
内容的提问来源于stack exchange,提问作者sara osama
相关产品推荐
相关产品推荐

