1

ソース管理からDD4TTBBを再構築し、TCMUploadAssembly.exeを使用してそれらをtridionに展開しました。

マルチメディアリンクフィールド、コンポーネントリンクフィールド、およびテキストフィールドを使用して単純なコンポーネントを作成し、値を入力しました。次に、[動的コンポーネントの生成、コンポーネントのバイナリの公開] TBBを含むCTを作成し、単一の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)で

D:\ DW-Source \ Mainline \ Src \ DD4T \ DD4T.ContentModel \ SerializableDictionary.cs:line80のDD4T.ContentModel.SerializableDictionary`3.WriteXml(XmlWriterライター)

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)の:line 0

Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1.Write32_Component(Object o)の:line 0

Microsoft.Xml.Serialization.GeneratedAssembly.ComponentSerializer.Serialize(Object objectToSerialize、XmlSerializationWriter writer)の:line 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名前空間)で

D:\ DW-Source \ Mainline \ Src \ DD4T \ DD4T.Templates.Base \ BaseComponentTemplate.cs:line 88のDD4T.Templates.Base.BaseComponentTemplate.Transform(エンジンエンジン、パッケージパッケージ)

Tridion.ContentManager.Templating.Assembly.AssemblyMediator.Transform(エンジンエンジン、テンプレートテンプレート、パッケージパッケージ)で

Tridion.ContentManager.Templating.Assembly.CSharpSourceCodeMediator.RunTemplate(エンジンエンジン、パッケージパッケージ、文字列templateUri、文字列className)で

Tridion.Templating.CSharpTemplate.CSharpSourceTemplate.Transform(Engine __engine、Package __package)で

Tridion.ContentManager.Templating.Assembly.CSharpSourceCodeMediator.Transform(エンジンエンジン、テンプレートテンプレート、パッケージパッケージ)で

Tridion.ContentManager.Templating.Engine.ExecuteTemplate(テンプレートテンプレート、パッケージパッケージ)で

4

1 に答える 1

2

Quirijnの答えは役に立ちましたか?https://groups.google.com/d/msg/dynamic-delivery-4-tridion/K0BzzPovUz4/1RvTHFHktukJ

また、複数の発行元がある場合は、DD4T.Templates.Base.dllをすべての発行元のGACに追加してください。(Qの回答のオプション2を選択した場合)

于 2013-01-09T13:19:07.930 に答える