Tridion核心服务更新错误-续

Tridion核心服务更新错误-续,tridion,tridion-2011,Tridion,Tridion 2011,在我们正在进行的重构练习中,我们必须更改选定网站的页面模板。大多数页面都进行了本地化,并通过下面的代码更新了页面模板,但有一些页面出现以下错误: “名称、文件名在其结构组及其Blueprint上下文中对于类型为:Page的项必须是唯一的。冲突源tcm:121:3456-64” 我检查了当前正在处理的页面和错误中提到的页面,它们都有唯一的名称和文件名。你知道是什么导致了这个问题吗 顺便说一句,我能够通过在我的问题上发布的极好的建议来解决先前的错误。希望这次能有类似的反应 试试看 { pData=c

在我们正在进行的重构练习中,我们必须更改选定网站的页面模板。大多数页面都进行了本地化,并通过下面的代码更新了页面模板,但有一些页面出现以下错误:

“名称、文件名在其结构组及其Blueprint上下文中对于类型为:Page的项必须是唯一的。冲突源tcm:121:3456-64”

我检查了当前正在处理的页面和错误中提到的页面,它们都有唯一的名称和文件名。你知道是什么导致了这个问题吗


顺便说一句,我能够通过在我的问题上发布的极好的建议来解决先前的错误。希望这次能有类似的反应

试试看
{
pData=client.Read(page.Attribute(“ID”).Value,null)作为PageData;
//本地化页面
如果(!(bool)pData.BluePrintInfo.IsLocalized)
{
Localize(pData.Id,new ReadOptions());
if(dTemplateIDs.ContainsKey(pData.PageTemplate.IdRef.ToString())
{
pData.IsPageTemplateInherited=false;
pData.PageTemplate.IdRef=dTemplateIDs[pData.PageTemplate.IdRef];
Update(pData,newreadoptions());
}
}
}
捕获(例外情况除外)
{
Console.WriteLine(“内部错误”+ex.Message);
} 

您的代码中有一些错误,不确定它们是否调用了exception,但无论如何都值得修复。首先,当您阅读页面时,
ReadOptions
null
时,您并没有真正阅读页面。其次,您应该从
Localize
方法获取页面,然后更新页面的本地化版本。像这样:

试试看
{
//你需要阅读选项在这里
pData=(PageData)client.Read(page.Attribute(“ID”).Value,new ReadOptions());
//本地化页面
如果(!(bool)pData.BluePrintInfo.IsLocalized)
{
//在此处获取本地化页面
pData=(PageData)client.Localize(pData.Id,new ReadOptions());
if(dTemplateIDs.ContainsKey(pData.PageTemplate.IdRef.ToString())
{
pData.IsPageTemplateInherited=false;
pData.PageTemplate.IdRef=dTemplateIDs[pData.PageTemplate.IdRef];
//这里不需要阅读选项
client.Update(pData,null);
}
}
}
捕获(例外情况除外)
{
Console.WriteLine(“内部错误”+ex.Message);
}  

最后,如果这一切都无济于事,您还可以进行堆栈后跟踪吗?

“这次期待类似的响应。”高期望值!:)很抱歉,我没有这么早就埋头回答您的问题,以便和上次一样快地回答您的问题!:)很好的问题,我们能让你有兴趣去做这件事吗。如果您有时间,请使用相同的SO帐户注册。