TelerikReports 升级到 2023 R3 时出现的问题,使用 Angular 前端报告包装器

问题描述 投票:0回答:1

我更新了我的前端 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

但是当我在升级本地环境中发出相同的请求时,我收到错误:

------------------------------------------------- --------------------

  • 和我的 .net 2.61 中的 ReportsController

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();
        }
    }
}

telerik-reporting
1个回答
0
投票

HTML5 (jQuery) Angular 查看器版本 20.23.1114 应与 17.2.23.1114 REST 服务配合使用。我更喜欢测试

api/reports/version
或使用
api/reports/formats
端点来查看服务是否已启动并正在运行。我会尝试在我的开发环境(对我来说是 Vusial Studio 2022)中构建 REST 服务项目,并查看此处是否会弹出相同的错误(我预计构建会失败)。您可以检查 Newtonsoft 软件包的引用并调试加载了哪个版本。

© www.soinside.com 2019 - 2024. All rights reserved.