System.FormatException: Guid должен содержать 32 цифры с 4 штрихами - SiteCore - PullRequest
0 голосов
/ 05 января 2012

Что вызывает следующую ошибку:

ОШИБКА Произошла ошибка рендеринга: XSL-файл не может быть обработан: abc.xslt (подробности: System.FormatException: Guid должен содержать 32 цифры с 4 тире (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).

(Для справки: использование Sitecore 6.4)

Кто-нибудь может мне помочь?

Edit: Похоже, вопрос разрешения. Работает нормально, когда я вошел в систему, но перерывы для анонимных. Обновлено с трассировкой стека:

[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

Ответы [ 3 ]

0 голосов
/ 09 марта 2013

Возможно, это связано с тем, что вы установили для этого столбца DataType: System.Guid. Давайте проверим:

  1. Открыть источники данных (в меню инструментов: Данные / Показать источники данных)
  2. Проверьте ваш столбец ошибок, он будет отличаться от других ...
  3. Открыть обозреватель серверов (в меню инструментов: Просмотр / Обозреватель серверов или двойной щелчок на имени вашей базы данных в обозревателе решений)
  4. НайтиТаблица базы данных и в контекстном меню мыши щелкните правой кнопкой мыши и найдите: «изменить схему таблицы»
  5. Найдите там свой столбец, измените свойство типа данных, какие данные вы хотите ... нажмите кнопку ОК ... если произошла ошибка, нажмите обновить вверхув левой части окна, а затем ОК ...
  6. Дважды щелкните YourDataSet в обозревателе решений, и в появившемся окне найдите проблемный столбец в списке.
  7. Нажмите на имя столбца и в свойствах Find DataType, (там я думаю будет написано System.Guid) измените его на ваш тип данных ... Перекомпилируйте ваш проект и используйте.

Второй и действительно работающий метод: определите, в каком столбце есть System.Guid DataType, и удалите его, замените другим ...

0 голосов
/ 30 марта 2015

Возможно, что-то из этого вызовет у вас некоторые идеи о том, что проверить / попробовать, даже если это другая версия:

  1. Sitecore 7.5 (обновлено с 7.2)
  2. В 7.2 мы добавили конвейерный процессор для разрешения запросов в поле расположения источника данных (pipe: Sitecore.Pipelines.GetRenderingDatasource.GetDatasourceLocation).
  3. После обновления до 7.5 мы поняли, что Sitecore добавил эту возможность в качестве одной из функций 7.5, поэтому у нас возникли конфликты кода, одним из которых была ошибка, показанная в этом посте.
  4. Код нашего процессора ожидал только guid в качестве значения источника данных, а не путь к строке. Как только мы обновили наш код, ошибка исчезла .
0 голосов
/ 09 апреля 2012

Недавно у меня были случаи испорченных анонимных профилей - исправлено путем перехода в Диспетчер пользователей и «сброса» профиля с помощью панели инструментов. Могу помочь.

Исходя из стека, я бы предположил, что одна из групп ролей, назначенных вашему пользователю, отсутствует в базе данных.

...