3

次のコードを使用して、公開されたバイナリのバイナリ データを読み取ろうとしています。

Tridion.ContentDelivery.DynamicContent.BinaryFactory factory = new BinaryFactory();
BinaryData binaryData = factory.GetBinary(uri.ToString());

バイナリがブローカーデータベースではなくファイルシステムに保存されている環境に展開するまで、これはうまくいきました。現在、ファイルが存在することは確かですが、BinaryData は常に null です。

このように BinaryFactory を使用したい場合、バイナリをデータベースに保存することは必須ですか? または、何か不足していますか?

4

1 に答える 1

4

SDL Tridion 2011 SP1 HR1 環境でいくつかのテストをBinaryData実行したところ、バイナリがファイル システムにあるときにデータが取り込まれている (つまり、null ではなく、値が含まれている) ことを確認できました。私はあなたのコード サンプルを使用し、私の Web サイトのページで使用されているバイナリの有効な URI を追加しました。私たちの環境間で何が違うのかわかりませんBinaryMeta.Broker Databaseにデプロイされていることを確認することしか考えていません.

私のノードの ItemTypes ノードcd_storage.xmlは次のとおりです。

<ItemTypes defaultStorageId="defaultdb" cached="true">
    <Item typeMapping="Binary" storageId="defaultFile" cached="true"/>
</ItemTypes>

したがって、バイナリを除くすべてがDBにあります。

使用している SDL Tridion のバージョンはわかりませんが (これが影響するかどうかもわかりません)、ファイル システムへのメタデータの保存は 2011 SP1 でサポートされなくなったと最近聞きました。

于 2013-02-07T19:27:02.327 に答える