0

是什么导致以下错误:

错误出现呈现错误:无法处理 Xsl 文件:abc.xslt(详细信息:System.FormatException:Guid 应包含 32 位数字和 4 个破折号(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。

(供参考:使用 Sitecore 6.4)

谁能帮我吗?

编辑:看起来像权限问题。当我登录时工作正常但匿名中断。更新了堆栈跟踪:

[FormatException: Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).]
   System.Guid..ctor(String g) +2486
   Sitecore.Data.ID..ctor(String id) +65
   Sitecore.Data.ID.Parse(String value) +42
   Sitecore.SecurityModel.SecurityAssignments.LoadData() +240
   Sitecore.SecurityModel.SecurityField.get_Assignments() +194
   Sitecore.SecurityModel.SecurityField.GetRights(Domain domain, ID entityID) +139
   Sitecore.Shell.Web.UI.WebControls.SecurityTreeview.GetTreeNode(Item item, Control parent) +817
   Sitecore.Web.UI.HtmlControls.DataTreeview.Populate(DataContext dataContext, Control control, Item root, Item folder, String selectedIDs) +452
   Sitecore.Web.UI.HtmlControls.DataTreeview.Populate(DataContext dataContext, Control control, Item root, Item folder, String selectedIDs) +335
   Sitecore.Web.UI.HtmlControls.DataTreeview.Populate(Control control, DataContext dataContext) +440
   Sitecore.Web.UI.HtmlControls.DataTreeview.Populate(Control control, Int32 depth) +82
   Sitecore.Web.UI.HtmlControls.DataTreeview.OnLoad(EventArgs e) +758
   Sitecore.Shell.Web.UI.WebControls.SecurityTreeview.OnLoad(EventArgs e) +31
   System.Web.UI.Control.LoadRecursive() +50
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627
4

3 回答 3

0

也许其中一些会为您激发一些关于检查/尝试的想法,即使它是不同的版本:

  1. Sitecore 7.5(从 7.2 升级)
  2. 在 7.2 中,我们添加了一个管道处理器以允许在数据源位置字段(管道:Sitecore.Pipelines.GetRenderingDatasource.GetDatasourceLocation)中进行查询。
  3. 升级到 7.5 后,我们意识到 Sitecore 已将此功能添加为 7.5 功能之一,因此我们发生了代码冲突,其中之一就是您在本文中显示的错误。
  4. 我们处理器的代码只需要一个 guid 作为数据源值,而不是字符串路径。一旦我们更新了代码,错误就消失了
于 2015-03-30T19:03:56.173 回答
0

我最近发生了损坏的匿名配置文件 - 通过进入用户管理器并使用工具栏“重置”配置文件来修复。可能有帮助。

根据堆栈,我猜测分配给您的用户的角色组之一从数据库中丢失。

于 2012-04-09T14:40:56.870 回答
-1

发生这种情况可能是因为您为此列设置了 DataType: System.Guid 让我们检查一下:

  1. 打开数据源(在工具菜单中:数据/显示数据源)
  2. 检查您的错误列,这将与其他...
  3. 打开服务器资源管理器(在工具菜单中:查看/服务器资源管理器,或在解决方案资源管理器中双击您的数据库名称)
  4. 找到您的数据库表并在鼠标右键单击上下文菜单中找到:“编辑表架构”
  5. 在那里找到您的列更改数据类型属性您想要的数据...单击确定...如果发生错误,请单击窗口左上角的刷新,然后确定...
  6. 在解决方案资源管理器中双击 YourDataSet,然后在出现的窗口中找到列表中的有问题的列。
  7. 点击列名,在属性中找到DataType,(那里我想会写System.Guid)把它改成你的数据类型...重新编译你的项目并使用。

第二个也是真正有效的方法是,检测哪一列有 System.Guid DataType 并将其删除,替换为其他...

于 2013-03-09T15:50:48.913 回答