1

从 .net core 2.2 升级到 3.1(不更改 codeffects 相关代码或库版本)后,我们在将 xml 加载到规则编辑器(在后端)时遇到问题,但只有在 docker 容器中运行应用程序时(即基于 mcr.microsoft.com/dotnet/aspnet:3.1.11 图像)。当从 Visual Studio 运行完全相同的代码时,一切都很好。如果我们恢复到应用程序的 .net core 2.2 版本,情况也是如此。

问题在于将现有规则 xml 加载到规则编辑器中:

editor.LoadRuleXml(ruleXml);

或者这样

editor.Rule = CodeEffects.Rule.Models.RuleModel.Create(ruleXml, type);

例外是:

CodeEffects.Rule.Common.InvalidRuleException:无效的规则 XML。输入字符串的格式不正确。(#125) 在 CodeEffects.Rule.Formats.Ce.LoadXml(XmlDocument 规则,XmlDocument 源,GetRuleDelegate 的 CodeEffects.Rule.Formats.Ce.FillRule(List`1 列表,XmlNode ruleXml,XmlDocument sourceXml,GetRuleDelegate ruleDelegate,Type sourceObject)在 CodeEffects.Rule.Core.RuleLoader.LoadXml(字符串 xmlRule,XmlDocument sourceXml,GetRuleDelegate ruleDelegate 的 CodeEffects.Rule.Core.RuleLoader.LoadXml(XmlDocument 规则,XmlDocument 源,RuleFormatType 格式,GetRuleDelegate getRuleDelegate,Type sourceObject)处的 ruleDelegate,类型 sourceObject) , 在 CodeEffects.Rule.Web.RuleEditor.LoadRuleXml(String ruleXml) 的 CodeEffects.Rule.Web.RuleEditor.LoadRuleXml(String ruleXml, GetRuleDelegate ruleDelegate) 中键入 sourceObject)

记录我们传递给 load 方法的 xml 表明 xml 是应有的样子,就像它存储在 db 中一样,并且这个相同的 xml 可以正常工作,只是当应用程序在基于 .网络核心 3.1。

不幸的是,没有内在的例外可以让我们更接近问题的根源。而且由于它只能在 docker 容器中运行时才能重现,所以我们的想法已经不多了。

我们的 CodeEffects.Rule.Editor.Web.Core 库版本很旧,5.0.7.6,但即使我们升级到最新的 5.0.38.4,同样的问题仍然存在。

知道可能是什么问题吗?

4

0 回答 0