我们最近将使用 Sitecore 5 CMS 构建的网站移至新的 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 代码找不到别名?