Ошибка сериализации при публикации контента с использованием 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)