XslCompiledTransform 类的加载方法抛出 *** 异常
Posted
技术标签:
【中文标题】XslCompiledTransform 类的加载方法抛出 *** 异常【英文标题】:Load method of XslCompiledTransform class throws *** Exception 【发布时间】:2017-06-27 10:43:36 【问题描述】:我正在尝试构建我们公司的项目和加载方法
XslCompiledTransform 抛出 *** 异常
这让我很烦,因为从字面上看,五分钟前我能够构建,现在没有更改模板或代码,它开始到 throw exceptions
...
if (context.Request.IsLocal)
var cc = new XslCompiledTransform();
using (var xmlReader = new XmlTextReader(context.Server.MapPath("/templates/xhtmlmain.xsl"))
DtdProcessing = DtdProcessing.Parse )
cc.Load(xmlReader);
return cc;
【问题讨论】:
看看blogs.msdn.microsoft.com/xmlteam/2011/09/26/…有没有帮助解决。 谢谢,这确实有帮助。结果在我的情况下,由于我们的模板写得不好,无法重构,我不得不制作大于默认堆栈大小的线程。 【参考方案1】:在我的情况下,由于我们的模板编写不佳,无法重构,因此我不得不制作大于默认堆栈大小的线程。
这是代码:
private static XslCompiledTransform LoadTransformations(HttpContext context, XslCompiledTransform cc)
using (var xmlReader = new XmlTextReader(context.Server.MapPath("/templates/xhtmlmain.xsl"))
DtdProcessing = DtdProcessing.Parse
)
cc.Load(xmlReader);
return cc;
private static XslCompiledTransform CreateTransformation(HttpContext context)
var cc = new XslCompiledTransform();
// Since our templates are most likely poorly written it takes
// unusual amount of memory for a thread to handle the transformation
// leaving the application throwing *** Exception.
// This code creates different thread with 8MB stack size which actually succeeds in
// transforming all the templates.
// Creates custom thread and start it.
Thread t = new Thread(() => cc = GTHttpHandler.LoadTransformations(context, cc), 8 * 1024 * 1024);
t.Start();
// Ensure our transformation thread is finished before doing anything.
t.Join();
return cc;
【讨论】:
以上是关于XslCompiledTransform 类的加载方法抛出 *** 异常的主要内容,如果未能解决你的问题,请参考以下文章
XslCompiledTransform 中的 XSLT 复制和排序转换引发异常
C# XslCompiledTransform - 以 POCO 形式而不是 Html 输出
如何将VS2003的XslTransform转换为VS2005的XslCompiledTransform?
xslcompiledtransform 输出函数名和命名空间
当输入 XML 和转换 XSL 是字符串时,如何使用 XslCompiledTransform。如何将转换结果作为字符串获取?