gpt4 book ai didi

c# - 在 .NET 4.5 中加载大型 XSLT 时出现异常 "stylesheet is too complex"

转载 作者:太空狗 更新时间:2023-10-29 22:19:28 40 4
gpt4 key购买 nike

我在尝试加载 XSLT 样式表时遇到异常。 XSLT 样式表非常大(将近 8,000 行)。不幸的是,我对此没有任何控制权,而且我无法重构样式表以使其更小。

我们最近升级到了 .Net Framework 4.5。以下命令在升级之前运行良好(我们使用的是 .Net Framework 4.0)。升级后,我们在 transform.Load 行收到一个 XsltException,提示“样式表太复杂”。

我希望有一些新的设置会说“让这个命令按照它在 4.0 中的方式工作”,但我在任何地方都找不到任何东西。

有人知道为什么这可能突然成为 4.5 版本中的问题吗?如何解决?

XslCompiledTransform transform = new XslCompiledTransform();
transform.Load(XmlReader.Create(report), new XsltSettings { EnableScript = true }, new XmlUrlResolver());

report 是一个包含大型 XSLT 样式表的 MemoryStream。

最佳答案

事实证明这是 .Net Framework 4.5 中的一个特性/缺陷。来自微软的消息...

我们最近在修补程序汇总中发布了针对此问题的修复程序。参见 http://support.microsoft.com/kb/2828843适用于 .NET Framework 4.0 和 http://support.microsoft.com/kb/2828841适用于 .NET Framework 4.5。

然后将其添加到您的配置文件中,问题就会消失。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="system.xml">
<section name="xslt" type="System.Xml.XmlConfiguration.XsltConfigSection, System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</sectionGroup>
</configSections>
<system.xml>
<xslt limitXPathComplexity="false"/>
</system.xml>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
</configuration>

这解决了我的问题。

关于c# - 在 .NET 4.5 中加载大型 XSLT 时出现异常 "stylesheet is too complex",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16091351/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com