3

我们使用 XSLT 来显示站点地图。在我们将 Sitecore 从 6.5 升级到 6.6 之前,它一直运行良好。现在我们收到错误“无法处理 Xsl 文件”。为了检查我们在逻辑上是否有问题,我们保留了一个空的 XSLT,但我们得到了同样的错误。有人对此有想法吗?还是面临同样的问题?

编辑

web.config 中的 XSL 扩展设置为:

<xslExtensions>
  <extension mode="on" type="Sitecore.Xml.Xsl.XslHelper, Sitecore.Kernel" namespace="http://www.sitecore.net/sc" singleInstance="true" />
  <extension mode="on" type="Sitecore.MainUtil, Sitecore.Kernel" namespace="http://www.sitecore.net/util" singleInstance="true" />
  <extension mode="on" type="Sitecore.DateUtil, Sitecore.Kernel" namespace="http://www.sitecore.net/dateutil" singleInstance="true" />
  <extension mode="on" type="Sitecore.Web.UI.WebControls.ContentDot, Sitecore.Kernel" namespace="http://www.sitecore.net/dot" singleInstance="true" />
  <extension mode="on" type="Sitecore.Xml.Xsl.SqlHelper, Sitecore.Kernel" namespace="http://www.sitecore.net/sql" singleInstance="true" />
  <extension mode="on" type="Sitecore.Web.UI.WebControls.WebEditRibbon, Sitecore.Kernel" namespace="http://www.sitecore.net/webedit" singleInstance="true" />
  <extension mode="on" type="Sitecore.StringUtil, Sitecore.Kernel" namespace="http://www.sitecore.net/stringutil" singleInstance="true" />
</xslExtensions>

并记录此错误:

ERROR Could not resolve type name:
Sitecore.Ecommerce.Classes.XslExtensions,Sitecore.Ecommerce.Custom (method:Sitecore.Configuration.Factory.CreateType(XmlNode configNode, String[] parameters,Boolean assert)).

ERROR A rendering error occurred: Xsl file could not be processed (details: System.Exception: Could not resolve type name:Sitecore.Ecommerce.Classes.XslExtensions,Sitecore.Ecommerce.Custom (method: Sitecore.Configuration.Factory.CreateType(XmlNode configNode, String[] parameters, Boolean assert)). 
at Sitecore.Diagnostics.Error.Raise(String error, String method) 
at Sitecore.Diagnostics.Error.Assert(Boolean condition, String error) 
at Sitecore.Configuration.Factory.CreateType(XmlNode configNode, String[] parameters, Boolean assert) 
at Sitecore.Configuration.Factory.CreateFromTypeName(XmlNode configNode, String[] parameters, Boolean assert) 
at Sitecore.Configuration.Factory.CreateObject(XmlNode configNode, String[] parameters, Boolean assert, IFactoryHelper helper) 
at Sitecore.Web.UI.WebControls.XslFile.ReadXslExtensions() 
at Sitecore.Web.UI.WebControls.XslFile.get_XslExtensions() 
at Sitecore.Web.UI.WebControls.XslFile.AddExtensionObjects(XsltArgumentList list, Item item) 
at Sitecore.Web.UI.WebControls.XslFile.DoRender(HtmlTextWriter output, Item item)) 
4

1 回答 1

1

我认为上面的错误是说“您要求我渲染的 XSLT 文件引用了一个扩展类,但我无法创建该类的实例” - 并查看您提供的配置片段,这似乎没有提到班级。据我所知,您想在 Sitecore 渲染中使用的所有 XSLT 扩展都需要在使用前进行注册。

我以前没有遇到过“Sitecore.Ecomerce.Custom”命名空间,但是通过谷歌搜索它会导致我在 SDN 上找到“Sitecore 电子商务基础版”:http: //sdn.sitecore.net/Products/SEFE/SEFE11.aspx

通过查看安装包,我发现了一个配置包含文件,其中包含以下代码段:

<xslExtensions>
  <extension mode="on" type="Sitecore.Ecommerce.Classes.XslExtensions,Sitecore.Ecommerce.Custom" namespace="http://www.sitecore.net/ec" singleInstance="true" />
</xslExtensions>

(查看此模块包中的“Sitecore.Commerce.Examples.config”文件)

我怀疑您的错误与升级导致安装中丢失的那一行额外配置有关,或者 Sitecore.Ecommerce.Custom.dll 二进制文件丢失?

将丢失的位放回升级后的站点可能会很好地修复错误。

但是:上面的 SDN 链接表明 Sitecore 的此扩展与 SC 6.6 不兼容。正如我所说,我以前没有使用过这个模块,所以我可能会错过隐藏在 SDN 中的较新版本,但上面的页面说你需要 v6.3-v6.4 才能工作。从我简短的谷歌中我无法判断 Sitecore 是在说“此代码无法与 v6.6 一起使用”还是他们是否在说“我们尚未使用 v6.6 对其进行测试,但它可能会工作 - 自行使用风险”。我建议您通过 Sitecore 支持进行检查。

于 2014-04-28T19:08:13.543 回答