我更新了我的前端 package.json 以使用 Telerik
Angular
报告包装器(于 2023 年 11 月发布):
"@progress/telerik-angular-report-viewer": "^20.23.1114",
即根据 npm -“此版本..需要 Telerik Report Server .. 17.2.23.1114.
和后端到
Telerik.Reporting 17.2.23.1114
:
现在当我访问我们网站的统计页面时
http://oak-3cvrvv3/Har/en-US/#/statistics
我收到错误:
Cannot access the Reporting REST service. (serviceUrl = 'http://oak-3cvrvv3/HarAPI/api/reports'). Make sure the service address is correct and enable CORS if needed. (https://enable-cors.org)
现在在 Postman 中,旧版本上的这个 Post 请求仅返回 clientId
https://devapp01.topsyn.com/har/api/reports/clients
但是当我在升级本地环境中发出相同的请求时,我收到错误:
------------------------------------------------- --------------------
using System;
using System.Collections.Generic;
using System.IO;
using System.Web.Http;
using Telerik.Reporting.Cache.Interfaces;
using Telerik.Reporting.Services.WebApi;
using System.Web;
using Telerik.Reporting.Services;
using Telerik.Reporting;
namespace SynWAPI.Controllers
{
[AllowCrossSiteJson]
[RoutePrefix("api/reports")]
public class ReportsController : ReportsControllerBase
{
[HttpGet]
[Route("IsReady")]
public IHttpActionResult IsReady()
{
return Ok("OK Dude !");
}
// new method for latest TelerikReports 2023 release, as per https://docs.telerik.com/reporting/embedding-reports/host-the-report-engine-remotely/rest-service-report-source-resolver/use-custom-report-source-and-document-resolvers?_ga=2.110664256.43783964.1705943251-1117489418.1701363987&_gl=1*3x39f9*_ga*MTExNzQ4OTQxOC4xNzAxMzYzOTg3*_ga_9JSNBCSF54*MTcwNjExMTg5NC4yMC4xLjE3MDYxMTI5MTMuNDYuMC4w*_gcl_au*NTYzNzA2MTUwLjE3MDEzNjM5ODY.
public ReportSource Resolve(string uri, OperationOrigin operationOrigin, IDictionary<string, object> currentParameterValues)
{
{
var appPath = HttpContext.Current.Server.MapPath("~/");
string reportPath = Path.Combine(appPath, @".\Reports");
var reportPackager = new ReportPackager();
Report report = null;
using (var sourceStream = System.IO.File.OpenRead(reportPath))
{
report = (Report)reportPackager.UnpackageDocument(sourceStream);
}
return new InstanceReportSource
{
ReportDocument = report
};
}
}
//[Obsolete]
//protected override IReportSourceResolver CreateReportResolver() // THIS IS THE PRE-UPGRADE METHOD, WHICH CURRENTLY WORKS IN PRODUCTION
//{
// var appPath = HttpContext.Current.Server.MapPath("~/");
// var reportsPath = Path.Combine(appPath, @".\Reports");
// return (IReportSourceResolver)new ReportFileResolver(reportsPath).AddFallbackResolver(new ReportTypeResolver());
//}
[Obsolete]
protected override ICache CreateCache()
{
return Telerik.Reporting.Services.Engine.CacheFactory.CreateFileCache();
}
}
}
HTML5 (jQuery) Angular 查看器版本 20.23.1114 应与 17.2.23.1114 REST 服务配合使用。我更喜欢测试
api/reports/version
或使用 api/reports/formats
端点来查看服务是否已启动并正在运行。我会尝试在我的开发环境(对我来说是 Vusial Studio 2022)中构建 REST 服务项目,并查看此处是否会弹出相同的错误(我预计构建会失败)。您可以检查 Newtonsoft 软件包的引用并调试加载了哪个版本。