1

最近、Sitecore 5 CMS を使用して構築された Web サイトを新しい Server 2008 R2 / IIS 7.5 マシンに移動しました。しかし、この変更後、Sitecore エイリアスは解決されなくなりました。

更新問題はサーバーの移動とは関係ないと思います。Sitecore API で奇妙なことが起こっています。

問題は、Aliases.Exists() へのこのメソッド呼び出しが常に false を返すことです。

if (Sitecore.Context.Database.Aliases.Exists(args.LocalPath))
{
    var aliasId = Sitecore.Context.Database.Aliases.GetTargetID(args.LocalPath);        

    ...
}

しかし、次のコードを使用してエイリアス ノードを取得できます。

var folder = Sitecore.Context.Database.Items["/sitecore/system/Aliases"];
var aliasItem = folder.Axes.GetChild(args.LocalPath);

args.LocalPath は "/thisIsAnAlias" のようなものです。

web.config ファイルで AliasesActive をオンにし、匿名ユーザーに Alias ノードへの読み取りアクセスを許可します。

私は何か間違ったことをしていますか?Context.Database.Aliases コードでエイリアスが見つからないのはなぜですか?

4

1 に答える 1

0

おそらくすでにチェックされていますが、[システム]> [エイリアス]フォルダーを調べて、エイリアスがそれぞれのアイテムにリンクされていることを確認しましたか?「データ」の下に「リンクされたアイテム」と呼ばれるこれを確認できるフィールドがあります。

于 2012-07-18T01:34:11.540 に答える