5

在 Tridion 2009 中尝试发布页面 (.NET) 时,我们刚刚开始遇到一些错误。它从间歇性的经典“RenderComponentPresentation 超出最大渲染失败次数 0”错误开始,然后进展为完全失败。

我们可以正确预览页面,所以我不愿意相信它与实际的模板代码有关。

不幸的是,我无法控制正在运行的盒子,所以我将无法运行任何调试代码等......所以这是在黑暗中的一个镜头!

堆栈跟踪如下:

Event Type:        Error 
Event Source:        Publishing 
Event Category:        None 
Event ID:        100 
Date:                22/05/2012 
Time:                14:28:22 
User:                N/A 
Computer:        XXXXXXXXXX
Description: 
Exception has been thrown by the target of an invocation. 
Old format or invalid type library. (Exception from HRESULT: 0x80028019 (TYPE_E_UNSUPFORMAT)) 


Component: Tridion.ContentManager.Publishing 
Errorcode: 0 
User: NT AUTHORITY\SYSTEM 

StackTrace Information Details: 
   at System.RuntimeMethodHandle._InvokeConstructor(Object[] args, SignatureStruct& signature, IntPtr declaringType) 
   at System.RuntimeMethodHandle.InvokeConstructor(Object[] args, SignatureStruct signature, RuntimeTypeHandle declaringType) 
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 
   at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) 
   at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) 
   at Tridion.ContentManager.Session.GetObject(String uri) 
   at Tridion.ContentManager.Publishing.Publisher.QueueMessageHandler.HandleMessage() 
4

1 回答 1

6

看起来您在该系统的某个地方有一个旧的 DLL。检查您在盒子上的所有依赖项(因此您放入 GAC 或 Tridion*\bin 目录的 DLL)是否是最新的,并让它们重新启动 Tridion 相关服务、COM+ 应用程序和 IIS 应用程序池。

编辑:实际上如果模板生成器工作,看起来 DLL 可能已经是最新的,你只需要重新启动服务+COM+应用程序池。如果您的团队不知道如何做到这一点,只需让他们重新启动机器或查看此脚本,该脚本会蛮力重新启动所有与 Tridion 相关的内容。

于 2012-05-22T13:28:58.557 回答