我有一个运行在.Net 4.6下的WinForms应用程序(x64)。 我使用XslCompiledTransform
来操作使用XSLT文件的一些XML文件。
XSLT转换是并行做了很多的XML文件如下:XslCompiledTransform加载方法抛出'拒绝访问异常'
Parallel.ForEach(totalBusWorkingFolderFileItem, po, (xsltPath, loopState) =>
{
XmlTextWriter transformedXml = new XmlTextWriter(stringWriter);
// Create a XslCompiledTransform to perform transformation
XslCompiledTransform xsltTransform = new XslCompiledTransform();
XsltSettings settings = new XsltSettings()
{
EnableDocumentFunction = true,
EnableScript = true
};
lock (xsltCompilerLocker)
{
xsltTransform.Load(xsltPath, settings, new XmlUrlResolver());
}
xsltTransform.Transform(xmlReader, argsList, transformedXml);
... (Do something with transformedXml)
}
当我从MSDN了解,Load方法创建%TEMP%
文件夹下的临时文件(在XslCompiledTransform
对象上启用了脚本的情况下)一旦对Load
方法的调用完成,这些文件就会被删除。
我的问题是,我得到锁定Load
方法即使在以下情况例外:
访问路径“C:\用户\ erezk \应用程序数据\本地的\ Temp \ iapqiwqu.tmp”被拒绝。
此文件是Load
调用生成的临时文件之一。
有没有人遇到过这个?