Ошибка сервиализации / десериализации
Добавлено: 19 сен 2022, 15:03
Добрый день.
У нас используется библиотека stimulsoft.reports.angular.netcore\2021.3.7
При разработке на тестовой среде все успешно работает, но когда код запускаем на проде, то получаем ошибки в тех местах, где происходит сериализация/десериализация в строку/из строки объекта отчета.
В чем может быть дело?
При создании отчета падает на методе:
Report.LoadFromString(reportTemplate);
При загрузке во вьювер на методе:
report.Report = stiReport.SaveDocumentToString();
Вот так выглядит ошибка при создании:
{"Message":"Exception has been thrown by the target of an invocation.","StackTrace":" at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean wrapExceptions, Boolean\u0026 canBeCached, RuntimeMethodHandleInternal\u0026 ctor, Boolean\u0026 hasNoDefaultCtor)\n at System.RuntimeType.CreateInstanceDefaultCtorSlow(Boolean publicOnly, Boolean wrapExceptions, Boolean fillCache)\n at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, Boolean wrapExceptions)\n at Stimulsoft.Base.Serializing.StiSerializing.GetObjectFromType(String typeStr)\n at Stimulsoft.Base.Serializing.StiSerializing.DeserializeObject(XmlTextReader tr, String parentPropName)\n at Stimulsoft.Base.Serializing.StiSerializing.DeserializeObject(XmlTextReader tr, String parentPropName)\n at Stimulsoft.Base.Serializing.StiSerializing.DeserializeObject(XmlTextReader tr, String parentPropName)\n at Stimulsoft.Base.Serializing.StiSerializing.DeserializeObject(XmlTextReader tr, String parentPropName)\n at Stimulsoft.Base.Serializing.StiSerializing.Deserialize(Object obj, Stream stream, String application)\n at Stimulsoft.Report.SaveLoad.StiXmlReportSLService.Load(StiReport report, Stream stream)\n at Stimulsoft.Report.StiReport.Load(StiReportSLService service, Stream stream)\n at Stimulsoft.Report.StiReport.Load(Stream stream)\n at Stimulsoft.Report.StiReport.LoadFromString(String reportStr)\n at Mediator.Reports.Builders.ReportBuilder.Init() in /src/src/Mediator.Reports/Builders/ReportBuilder.cs:line 38\n at Mediator.Reports.Services.ReportService.BuildReport(ReportWriteEntity report) in /src/src/Mediator.Reports/Services/ReportService.cs:line 283\n at Mediator.Reports.Services.ReportService.CreateStiReport(ReportWriteEntity report) in /src/src/Mediator.Reports/Services/ReportService.cs:line 264\n at Mediator.Reports.Services.ReportService.CreateReportAsync(Int64 reportTemplateId, AdvancedDateOptions advancedDateOptions, String displayedName, String user) in /src/src/Mediator.Reports/Services/ReportService.cs:line 138\n at Mediator.Reports.Controllers.ReportsController.Create(CreateReportRequest req) in /src/src/Mediator.Reports/Controllers/ReportsController.cs:line 61\n at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003CInvokeActionMethodAsync\u003Eg__Awaited|12_0(ControllerActionInvoker invoker, ValueTask\u00601 actionResultValueTask)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003CInvokeNextActionFilterAsync\u003Eg__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State\u0026 next, Scope\u0026 scope, Object\u0026 state, Boolean\u0026 isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003CInvokeInnerFilterAsync\u003Eg__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.\u003CInvokeFilterPipelineAsync\u003Eg__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.\u003CInvokeAsync\u003Eg__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)\n at Microsoft.AspNetCore.Routing.EndpointMiddleware.\u003CInvoke\u003Eg__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)\n at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)\n at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)\n at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)\n at Microsoft.AspNetCore.Builder.Extensions.MapWhenMiddleware.Invoke(HttpContext context)\n at Core.Shared.Middleware.Exceptions.ExceptionMiddleware.InvokeAsync(HttpContext httpContext) in /src/src/Core.Shared/Middleware/Exceptions/ExceptionMiddleware.cs:line 30"}
вот так при загрузке во вьювер:
{"Message":"Exception has been thrown by the target of an invocation.","StackTrace":" at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean wrapExceptions, Boolean\u0026 canBeCached, RuntimeMethodHandleInternal\u0026 ctor, Boolean\u0026 hasNoDefaultCtor)\n at System.RuntimeType.CreateInstanceDefaultCtorSlow(Boolean publicOnly, Boolean wrapExceptions, Boolean fillCache)\n at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, Boolean wrapExceptions)\n at Stimulsoft.Base.Serializing.StiSerializing.GetObjectFromType(String typeStr)\n at Stimulsoft.Base.Serializing.StiSerializing.DeserializeObject(XmlTextReader tr, String parentPropName)\n at Stimulsoft.Base.Serializing.StiSerializing.DeserializeObject(XmlTextReader tr, String parentPropName)\n at Stimulsoft.Base.Serializing.StiSerializing.DeserializeObject(XmlTextReader tr, String parentPropName)\n at Stimulsoft.Base.Serializing.StiSerializing.DeserializeObject(XmlTextReader tr, String parentPropName)\n at Stimulsoft.Base.Serializing.StiSerializing.Deserialize(Object obj, Stream stream, String application)\n at Stimulsoft.Report.SaveLoad.StiXmlDocumentSLService.Load(StiReport report, Stream stream)\n at Stimulsoft.Report.StiReport.LoadDocument(StiDocumentSLService service, Stream stream)\n at Stimulsoft.Report.StiReport.LoadDocument(Stream stream)\n at Stimulsoft.Report.StiReport.LoadDocumentFromString(String reportStr)\n at Mediator.Reports.Services.ReportService.LoadReportAsync(ReportEntity report) in /src/src/Mediator.Reports/Services/ReportService.cs:line 194\n at Mediator.Reports.Controllers.ViewerController.ViewerEvent() in /src/src/Mediator.Reports/Controllers/ViewerController.cs:line 151\n at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003CInvokeActionMethodAsync\u003Eg__Awaited|12_0(ControllerActionInvoker invoker, ValueTask\u00601 actionResultValueTask)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003CInvokeNextActionFilterAsync\u003Eg__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State\u0026 next, Scope\u0026 scope, Object\u0026 state, Boolean\u0026 isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003CInvokeInnerFilterAsync\u003Eg__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.\u003CInvokeFilterPipelineAsync\u003Eg__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.\u003CInvokeAsync\u003Eg__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)\n at Microsoft.AspNetCore.Routing.EndpointMiddleware.\u003CInvoke\u003Eg__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)\n at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)\n at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)\n at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)\n at Microsoft.AspNetCore.Builder.Extensions.MapWhenMiddleware.Invoke(HttpContext context)\n at Core.Shared.Middleware.Exceptions.ExceptionMiddleware.InvokeAsync(HttpContext httpContext) in /src/src/Core.Shared/Middleware/Exceptions/ExceptionMiddleware.cs:line 30"}
У нас используется библиотека stimulsoft.reports.angular.netcore\2021.3.7
При разработке на тестовой среде все успешно работает, но когда код запускаем на проде, то получаем ошибки в тех местах, где происходит сериализация/десериализация в строку/из строки объекта отчета.
В чем может быть дело?
При создании отчета падает на методе:
Report.LoadFromString(reportTemplate);
При загрузке во вьювер на методе:
report.Report = stiReport.SaveDocumentToString();
Вот так выглядит ошибка при создании:
{"Message":"Exception has been thrown by the target of an invocation.","StackTrace":" at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean wrapExceptions, Boolean\u0026 canBeCached, RuntimeMethodHandleInternal\u0026 ctor, Boolean\u0026 hasNoDefaultCtor)\n at System.RuntimeType.CreateInstanceDefaultCtorSlow(Boolean publicOnly, Boolean wrapExceptions, Boolean fillCache)\n at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, Boolean wrapExceptions)\n at Stimulsoft.Base.Serializing.StiSerializing.GetObjectFromType(String typeStr)\n at Stimulsoft.Base.Serializing.StiSerializing.DeserializeObject(XmlTextReader tr, String parentPropName)\n at Stimulsoft.Base.Serializing.StiSerializing.DeserializeObject(XmlTextReader tr, String parentPropName)\n at Stimulsoft.Base.Serializing.StiSerializing.DeserializeObject(XmlTextReader tr, String parentPropName)\n at Stimulsoft.Base.Serializing.StiSerializing.DeserializeObject(XmlTextReader tr, String parentPropName)\n at Stimulsoft.Base.Serializing.StiSerializing.Deserialize(Object obj, Stream stream, String application)\n at Stimulsoft.Report.SaveLoad.StiXmlReportSLService.Load(StiReport report, Stream stream)\n at Stimulsoft.Report.StiReport.Load(StiReportSLService service, Stream stream)\n at Stimulsoft.Report.StiReport.Load(Stream stream)\n at Stimulsoft.Report.StiReport.LoadFromString(String reportStr)\n at Mediator.Reports.Builders.ReportBuilder.Init() in /src/src/Mediator.Reports/Builders/ReportBuilder.cs:line 38\n at Mediator.Reports.Services.ReportService.BuildReport(ReportWriteEntity report) in /src/src/Mediator.Reports/Services/ReportService.cs:line 283\n at Mediator.Reports.Services.ReportService.CreateStiReport(ReportWriteEntity report) in /src/src/Mediator.Reports/Services/ReportService.cs:line 264\n at Mediator.Reports.Services.ReportService.CreateReportAsync(Int64 reportTemplateId, AdvancedDateOptions advancedDateOptions, String displayedName, String user) in /src/src/Mediator.Reports/Services/ReportService.cs:line 138\n at Mediator.Reports.Controllers.ReportsController.Create(CreateReportRequest req) in /src/src/Mediator.Reports/Controllers/ReportsController.cs:line 61\n at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003CInvokeActionMethodAsync\u003Eg__Awaited|12_0(ControllerActionInvoker invoker, ValueTask\u00601 actionResultValueTask)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003CInvokeNextActionFilterAsync\u003Eg__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State\u0026 next, Scope\u0026 scope, Object\u0026 state, Boolean\u0026 isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003CInvokeInnerFilterAsync\u003Eg__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.\u003CInvokeFilterPipelineAsync\u003Eg__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.\u003CInvokeAsync\u003Eg__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)\n at Microsoft.AspNetCore.Routing.EndpointMiddleware.\u003CInvoke\u003Eg__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)\n at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)\n at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)\n at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)\n at Microsoft.AspNetCore.Builder.Extensions.MapWhenMiddleware.Invoke(HttpContext context)\n at Core.Shared.Middleware.Exceptions.ExceptionMiddleware.InvokeAsync(HttpContext httpContext) in /src/src/Core.Shared/Middleware/Exceptions/ExceptionMiddleware.cs:line 30"}
вот так при загрузке во вьювер:
{"Message":"Exception has been thrown by the target of an invocation.","StackTrace":" at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean wrapExceptions, Boolean\u0026 canBeCached, RuntimeMethodHandleInternal\u0026 ctor, Boolean\u0026 hasNoDefaultCtor)\n at System.RuntimeType.CreateInstanceDefaultCtorSlow(Boolean publicOnly, Boolean wrapExceptions, Boolean fillCache)\n at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, Boolean wrapExceptions)\n at Stimulsoft.Base.Serializing.StiSerializing.GetObjectFromType(String typeStr)\n at Stimulsoft.Base.Serializing.StiSerializing.DeserializeObject(XmlTextReader tr, String parentPropName)\n at Stimulsoft.Base.Serializing.StiSerializing.DeserializeObject(XmlTextReader tr, String parentPropName)\n at Stimulsoft.Base.Serializing.StiSerializing.DeserializeObject(XmlTextReader tr, String parentPropName)\n at Stimulsoft.Base.Serializing.StiSerializing.DeserializeObject(XmlTextReader tr, String parentPropName)\n at Stimulsoft.Base.Serializing.StiSerializing.Deserialize(Object obj, Stream stream, String application)\n at Stimulsoft.Report.SaveLoad.StiXmlDocumentSLService.Load(StiReport report, Stream stream)\n at Stimulsoft.Report.StiReport.LoadDocument(StiDocumentSLService service, Stream stream)\n at Stimulsoft.Report.StiReport.LoadDocument(Stream stream)\n at Stimulsoft.Report.StiReport.LoadDocumentFromString(String reportStr)\n at Mediator.Reports.Services.ReportService.LoadReportAsync(ReportEntity report) in /src/src/Mediator.Reports/Services/ReportService.cs:line 194\n at Mediator.Reports.Controllers.ViewerController.ViewerEvent() in /src/src/Mediator.Reports/Controllers/ViewerController.cs:line 151\n at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003CInvokeActionMethodAsync\u003Eg__Awaited|12_0(ControllerActionInvoker invoker, ValueTask\u00601 actionResultValueTask)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003CInvokeNextActionFilterAsync\u003Eg__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State\u0026 next, Scope\u0026 scope, Object\u0026 state, Boolean\u0026 isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.\u003CInvokeInnerFilterAsync\u003Eg__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.\u003CInvokeFilterPipelineAsync\u003Eg__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)\n at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.\u003CInvokeAsync\u003Eg__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)\n at Microsoft.AspNetCore.Routing.EndpointMiddleware.\u003CInvoke\u003Eg__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)\n at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)\n at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)\n at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)\n at Microsoft.AspNetCore.Builder.Extensions.MapWhenMiddleware.Invoke(HttpContext context)\n at Core.Shared.Middleware.Exceptions.ExceptionMiddleware.InvokeAsync(HttpContext httpContext) in /src/src/Core.Shared/Middleware/Exceptions/ExceptionMiddleware.cs:line 30"}