在.NET Core 3.1 Razor Pages中使用Kendo遇服务构造异常求助
解决Razor Pages中使用Kendo组件时的服务构造错误
你碰到的这个System.AggregateException错误,核心原因是Telerik组件版本和你的ASP.NET Core版本不兼容。
你的Telerik.UI.for.AspNet.Core用的是2019.1.220,这个版本发布的时候ASP.NET Core 3.1还没推出,它依赖的是ASP.NET Core早期版本中的Microsoft.AspNetCore.Mvc.Internal.ClientValidatorCache类型,但这个类型在ASP.NET Core 3.1里已经被移除或者迁移到了其他命名空间,所以才会出现加载失败的问题。
下面给你两个可行的解决办法:
办法1:升级Telerik组件版本(优先推荐)
这是最稳妥的方案,因为ASP.NET Core 3.1是长期支持(LTS)版本,后续维护更有保障:
- 打开项目的NuGet包管理器,找到
Telerik.UI.for.AspNet.Core,把它升级到2019.3或更高版本(2019.3是第一个正式支持ASP.NET Core 3.0/3.1的Telerik版本)。 - 升级完成后,重新构建项目,这个服务构造错误应该就能直接解决。
办法2:降级ASP.NET Core版本
如果暂时不想升级Telerik组件,可以把项目的ASP.NET Core版本降到3.0以下:
- 打开项目的
.csproj文件,把<TargetFramework>节点的值从netcoreapp3.1改成netcoreapp2.2(或者更早的兼容版本)。 - 同步更新所有ASP.NET Core相关的NuGet包到对应框架的版本,然后重新构建项目。
额外提醒
- 升级Telerik版本后,建议再核对一下官方的配置步骤,确保组件的注册和引用都没有问题,避免出现其他小问题。
- 尽量不要长期停留在旧版本的ASP.NET Core上,毕竟新版本会修复更多安全漏洞和bug。
内容的提问来源于stack exchange,提问作者user14234095
相关产品推荐
相关产品推荐

