- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在尝试加载 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/
我正在开发一个需要能够平均三个数字的 Facebook 应用程序。但是,它总是返回 0 作为答案。这是我的代码: $y = 100; $n = 250; $m = 300; $number = ($y
我只是无法弄清楚这一点,也找不到任何对我来说有意义的类似问题。我的问题:我从数据库中提取记录,并在我的网页上以每个面板 12 条的倍数显示它们。因此,我需要知道有多少个面板可以使用 JavaScrip
我是一名优秀的程序员,十分优秀!