我们在内部开发服务器上运行Sitecore 7.5(141003)的实例(我们正在逐步完成升级过程)。
我们有一个奇怪的问题,当您将项目作为管理员发布时,您会在“发布语言”标题下看到以下内容:
在sitecore>下;系统>语言我们只有一个'en'项,但是使用以下代码我们看到我们有三个'en'项(项目ID与System> Languages下的项目匹配)和两个'en-us'项目(没有项目ID) :
<%@ Page Language="C#" Debug="true" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<div>
<script runat="server">
void Page_Load(object sender, System.EventArgs e)
{
if (HttpContext.Current == null || Sitecore.Context.Database == null)
{
Response.Write("No context.");
return;
}
var languages = Sitecore.Data.Managers.LanguageManager.GetLanguages(Sitecore.Context.Database);
foreach (var language in languages)
{
Response.Write(Sitecore.Data.Managers.LanguageManager.GetLanguageItemId(language, Sitecore.Context.Database) + "<br />");
Response.Write(language.CultureInfo + "<br />");
}
}
</script>
</div>
</body>
</html>
此外,如果我对Master数据库运行以下查询,我只看到一个项目。
USE XXXSitecore_Master
SELECT TOP 10 *
FROM Items
WHERE ID = 'AF584191-45C9-4201-8740-5409F4CF8BDD'
由于这是一个开发服务器数据库,备份和恢复已被用于使其与另一台服务器保持同步,但我相信还使用了包装。
我很困惑为什么有多个版本的'en'返回相同的Item ID。
我们怎样才能找到这些额外英语的来源,以便我们最终能够完成并清理它们?
发布网站显示相同的三个英文选项。
查看“版本”选项卡中的“语言”部分,英语:英语显示三次,每次显示12个版本(以及所有三个突出显示),然后英语(美国) :英语(美国)显示两次,每种版本有两个版本。
查看版本,我们有10到1,然后是1两倍。要更新的日期和最后一个人是相同的。所以有12个版本,但版本1列出了三次。目前无法查看数据库,看看我能找到关于三个版本1实例的内容。
答案 0 :(得分:0)
我们在Sitecore 8中遇到了类似的问题(多次添加/删除语言后,我们的代码同时出现异常)。没有明确的答案为什么会发生这种情况,但我已经创造了虚拟语言&#39;再次项目,然后正确删除它。这解决了这个问题。顺便说一句:据我所知,Sitecore不允许创建新语言,因为它已经存在了#39;所以我们在干净的Sitecore中创建了语言项,并将其移动到包中。