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

时间:2012-11-02 11:22:12

标签: tridion tridion-2011 tridion-content-delivery

我目前正在从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:

请注意,没有说明。

被调用的代码是

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

在调用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)中没有任何错误,但原始问题仍然存在。

3 个答案:

答案 0 :(得分:8)

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

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

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

答案 1 :(得分:4)

自从我使用Classic ASP和SDL Tridion以来已经很长时间了,但请仔细检查以下内容

  • 服务器上是否正在运行链接服务?
  • 检查cd_licenses.xml文件是否已就位
  • 验证您是否有正确的cd_link_conf.xml和cd_storage_conf.xml(这些从我认为的5.3更改)
  • 在Application和Tridion事件日志中查找线索
  • Tridion链接日志文件
  • 该错误代码似乎暗示链接DLL未正确注册。

这就是我现在能想到的全部。

答案 2 :(得分:2)

我没有意识到2011实际上是模式验证配置文件,但无论如何,现在错误很明显。我建议你自己在XML Spy等XML编辑器中进行验证。这应该指出配置文件到底出了什么问题。

要定期检查您的配置,您可能会发现按照here所述编写脚本很有意思。