【发布时间】:2012-05-16 23:17:51
【问题描述】:
使用 Tridion 2009 SP1,因此使用旧的 COM+ TOM API。我正在尝试获取 PublishTransaction 的信息,但每次调用 PublishTransaction.Information 属性时都会出错。
这是我的代码:
try
{
var pubTrans = (PublishTransaction)tdse.GetObject("tcm:0-166535-66560",
EnumOpenMode.OpenModeView);
Console.WriteLine("transaction id=" + pubTrans.ID);
Console.WriteLine("transaction itemtype=" + pubTrans.itemType.ToString());
Console.WriteLine("transaction info=" + pubTrans.Information);
}
catch (Exception e)
{
Console.WriteLine(e.Message, e.StackTrace);
}
在上面,交易 ID 和项目类型打印正常。我还有其他代码,其中 Delete 方法工作正常,但每当我尝试获取信息时,它就会崩溃。
这是错误:
<tcm:Error xmlns:tcm="http://www.tridion.com/ContentManager/5.0" ErrorCode="D"
Category="18" Source="Kernel" Severity="1">
<tcm:Line Cause="false" MessageID="16138">
<![CDATA[Unable to get Information of Unknown (tcm:0-166535-66560).]]>
<tcm:Token>RESID_4485</tcm:Token><tcm:Token>Information</tcm:Token>
<tcm:Token>RESID_4663</tcm:Token><tcm:Token>tcm:0-166535-66560</tcm:Token>
</tcm:Line>
<tcm:Line ErrorCode="D" Cause="true"><![CDATA[Type mismatch]]></tcm:Line>
<tcm:Details>
<tcm:CallStack>
<tcm:Location>PublishTransaction.Information</tcm:Location>
<tcm:Location>PublishTransaction.Information</tcm:Location>
</tcm:CallStack>
</tcm:Details>
</tcm:Error>
我搜索了 SDL Tridion World 论坛,但找不到答案。我是否缺少修补程序,我应该联系支持人员,还是有其他方法可以获取交易信息?
【问题讨论】:
-
同样的代码在 2011 年运行良好(刚刚测试过)。不幸的是,无法在 2009 年进行测试...
-
如果使用 Console.WriteLine("transaction info=" + pubTrans.Information.ToString()); 会得到什么;
-
它以同样的方式爆炸。我还没有机会把它扔到远程调试器中。有一些 AD 跨域信任问题需要绕过。
-
我的事件系统代码 sn-p 对您不起作用?我看到@SivaCharan 的答案变成了一个非常相似的解决方案。我想知道你是否已经解决了。
标签: tridion tridion2009