{"message":"An error has occurred.","exceptionMessage":"The type initializer for 'Telerik.Reporting.Cache.Lock' threw an exception.","exceptionType":null,"stackTrace":null}
描述
在面向 .NET Core 框架的 ASP.NET Core 项目中,如果Telerik Reporting程序集在本地被引用,作为引用而不是 NuGet 包,您可能会收到以下错误。
解决方案
Telerik Reporting 程序集依赖于从 NuGet 包引用时自动添加的外部程序集。当直接引用报告程序集时,应手动添加这些依赖项。特定错误是由于缺少System.Threading.AccessControl程序集。如果添加它,则会出现与其他缺少程序集等相关的另一个错误。如果您在 Visual Studio 的 NuGet 包管理器中打开包,您可以获得 Telerik.Reporting、Telerik.Reporting.Services.AspNetCore等
的依赖项列表。
我们强烈建议将 Telerik Reporting 程序集添加为 NuGet 包。请注意,您可以创建一个本地 NuGet 存储库并在那里下载 NuGet 包。
如果这不是一个选项,您还需要手动添加必要的依赖项(按照上面的建议检查 NuGet 包管理器中的包)。
用的开发版,怎么会有NuGet,貌似Reporting的安装目录里不能建立本地NuGget存储仓,而Telerik UI for ASP.NET Core可以建立本地仓.
我是放在同一个项目里引用的,后面再报错的可能是数据库链接的问题,比如
{"message":"An error has occurred.","exceptionMessage":"Unable to establish a connection to the database. Please verify that your connection string is valid. In case you use a named connection string from the application configuration file, make sure the name is correct and the connection string settings are present in the configuration file of your application.","exceptionType":null,"stackTrace":null}
你可以先用barcode那个文件测试,再慢慢调试
再报错的估计就是.NetCore跨域的问题了,.netcore 3.1、5的配置都不太一样,萌新没具体研究
可以参考微软文档:https://docs.microsoft.com/zh-cn/aspnet/core/security/cors?view=aspnetcore-5.0#ecors
https://docs.telerik.com/reporting/knowledge-base/asp-dot-net-core-error-the-type-initializer-for-telerik-reporting-cache-lock