cd_link.PageLink GetLinkAsString(...)导致页面每隔一个请求失败

Kev*_*don 7 tridion tridion-content-delivery tridion-2011

我目前正在从Tridion R5.3迁移到Tridion 2011.我在通过演示服务器提供某些页面时遇到问题.作为参考我的所有网页都是经典的ASP,我在IIS7.5上运行它们.

我有一个页面位于http://www.example.com/widget/index.asp.当我第一次访问页面时,我得到一个The page cannot be displayed because an internal server error has occurred.,如果我然后刷新页面它加载正常,如果我第三次刷新页面它出现错误.该页面每隔一个请求工作.

我在我的网站上启用了失败的请求跟踪,我收到了错误消息

ASP_LOG_ERROR
LineNumber: 87
ErrorCode: 800706be 
Description:
Run Code Online (Sandbox Code Playgroud)

注意没有描述.

被调用的代码是

85: Dim objTranslationPageLink
86: Set objTranslationPageLink = Server.createObject("cd_link.PageLink")
87: strTranslatedPageLink = objTranslationPageLink.GetLinkAsString("tcm:0-12-1", "tcm:12-123456-64", "", "", "TranslationFound", False)
88: Set objTranslationPageLink = Nothing
Run Code Online (Sandbox Code Playgroud)

cd_link.PageLink在调用GetLinkAsString(...)函数时,看起来创建对象没有问题.

cd_link.PageLink在很多其他页面中使用该对象没有任何问题,但似乎使用这段特定代码的页面遇到了问题.

我认为这可能与缓存页面有关,但是我关闭了ASP页面的缓存(IIS7> ASP>服务>缓存属性)并且仍然存在问题.

有任何想法吗?

EDIT1

该代码在Windows Server 2003 IIS6上运行良好.我试图让它在Windows Server 2008 IIS7上运行.

EDIT2

看来,网页创建大量的cd_link.ComponentLinkcd_link.PageLink对象.我有一个测试页面,我在其中创建了10个ComponentLink对象,我得到了错误(每隔一页),但如果我将其减少到5个ComponentLink对象,它每次都有效.

EDIT3

我的cd_core.xxxx.xx.xx.log有以下错误

2012-11-02 11:55:34,027错误XMLConfigurationReader - 使用模式'schemas/cd_link_conf.xsd'验证文件'cd_link_conf.xml'时出错.cvc-complex-type.3.2.2:属性'DefaultRootLocation'不允许出现在元素'Publications'中.

edit4

谢谢你的支持.我使用cd_link_config时遇到的问题是固定的,似乎没有关联.我现在在我的四个日志文件(cd_core,cd_deployer,cd_monitor,cd_transport)中没有任何错误,但原始问题仍然存在.

Ram*_*m G 8

看起来您正在运行CD Link Windows服务,以下修补程序可能有助于解决您的问题.我没有尝试过这个修补程序,但描述说Page link fails on second attempt of accessing the page,这意味着它可能会根据记录器内存资源进行广泛的工作.

无论如何值得一看这个修补程序:CD_2011.1.0.78355

说明:链接Windows服务未正确清理某些Windows平台上的记录器内存资源