Ошибка сериализации при публикации контента с использованием DD4T TBB

Мы перестроили TBB DD4T из системы контроля версий и развернули их на tridion с помощью TCMUploadAssembly.exe.

Мы создали простой компонент с полем ссылки мультимедиа, полем ссылки компонента и текстовым полем и заполнили значения. Затем создал КТ с [Создать динамический компонент, Опубликовать двоичные файлы для компонента] внутри него и попытался опубликовать один DCP.

Мы можем запустить CT для компонента в построителе шаблонов и получить ожидаемый результат [то есть хорошо отформатированный вывод XML сериализованного компонента]

Однако при публикации мы получаем ошибку сериализации. (увидеть ниже) . Эта ошибка возникает, когда код пытается сериализовать любое поле компонента (текст / мультимедиа / ссылка на компонент и т. Д.)

Мы не можем определить причину. Попытка удаленной отладки кода, даже если все свойства объекта dynamic.component были правильно установлены при сериализации объекта-компонента, с которым мы столкнулись в этой проблеме. Даже пытался перезапустить COM +, издатель службы, но проблема все еще сохраняется. Любые указатели высоко ценятся.

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

Вот сообщение об ошибке:

Произошла ошибка при создании документа XML.

Произошла ошибка при создании документа XML.

В экземпляре объекта не задана ссылка на объект.

Компонент: Шаблонирование

Код ошибки: 0

Пользователь: NORD\DWTMTSUser

Информация о StackTrace:

в Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterField.XSArrayInfo.get_Item(Object a, Int32 i)

в Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterField.Write13_Field(String n, String ns, Object o, Boolean isNullable, Boolean needType)

в Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterField.Write14_Field(Object o)

в System.Xml.Serialization.XmlSerializer.Serialize(пространства имен XmlWriter xmlWriter, Object o, XmlSerializerNamespaces, String encodingStyle, String id)

в System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o)

в DD4T.ContentModel.SerializableDictionary`3.WriteXml(модуль записи XmlWriter) в D:\DW-Source\Mainline\Src\DD4T\DD4T.ContentModel\SerializableDictionary.cs: строка 80

в System.Xml.Serialization.XmlSerializationWriter.WriteSerializable(сериализуемый IXmlSerializable, имя строки, строка ns, логическое значение isNullable, логическое завертое)

в Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write13_Component(String n, String ns, Component o, Boolean isNullable, Boolean needType) в: строке 0

в Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write32_Component(Object o) в: строке 0

в Microsoft.Xml.Serialization.GeneratedAssembly.ComponentSerializer.Serialize(Object objectToSerialize, XmlSerializationWriter Writer) в: строка 0

в System.Xml.Serialization.XmlSerializer.Serialize(пространства имен XmlWriter xmlWriter, Object o, XmlSerializerNamespaces, String encodingStyle, String id)

в System.Xml.Serialization.XmlSerializer.Serialize(пространства имен XmlWriter xmlWriter, Object o, XmlSerializerNamespaces, String encodingStyle, String id)

в System.Xml.Serialization.XmlSerializer.Serialize(пространства имен XmlWriter xmlWriter, Object o, XmlSerializerNamespaces, String encodingStyle)

в System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter, Object o, пространства имен XmlSerializerNamespaces)

в DD4T.Templates.Base.BaseComponentTemplate.Transform(ядро ядра, пакетный пакет) в D:\DW-Source\Mainline\Src\DD4T\DD4T.Templates.Base\BaseComponentTemplate.cs: строка 88

в Tridion.ContentManager.Templating.Assembly.AssemblyMediator.Transform(Механизм двигателя, Шаблон шаблона, Пакетный пакет)

в Tridion.ContentManager.Templating.Assembly.CSharpSourceCodeMediator.RunTemplate (Механизм ядра, Пакетный пакет, String templateUri, String className)

в Tridion.Templating.CSharpTemplate.CSharpSourceTemplate.Transform (Engine __engine, Package __package)

в Tridion.ContentManager.Templating.Assembly.CSharpSourceCodeMediator.Transform(Механизм ядра, Шаблон шаблона, Пакетный пакет)

в Tridion.ContentManager.Templating.Engine.ExecuteTemplate(Шаблон шаблона, Пакетный пакет)

1 ответ

Решение

Помог ли тебе ответ Куиринна? https://groups.google.com/d/msg/dynamic-delivery-4-tridion/K0BzzPovUz4/1RvTHFHktukJ

Кроме того, если у вас несколько издателей, убедитесь, что вы добавили DD4T.Templates.Base.dll в GAC всех ваших издателей. (Если вы выбрали вариант 2 ответа Q)

Другие вопросы по тегам