问题标签 [tridion-content-delivery]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
256 浏览

visual-studio-2010 - 来自 VS 服务参考的 OData Web 服务查询

我想发送这样的请求:

这是我正在使用的代码:

我的问题是这段代码正在发送这样的请求:

这个请求的问题是它返回了所有页面,而不仅仅是我需要的页面。

我可以使用 LINQ:

但问题是所有页面仍将通过网络发送

0 投票
2 回答
158 浏览

tridion - 以不同名称发布的内容搬运工

在将内容从出版物导出到其他环境中具有不同名称的出版物时,目标出版物的属性也变得相同,我们无法更改目标出版物的父级。需要帮忙...

0 投票
2 回答
2047 浏览

tridion - 封闭类型的 Component 没有对应的 IsMultimedia 可设置属性

我已经在 Visual Studio 中生成了对 SDL Tridion 2011 SP1 上的 CD OData webservice 的服务引用,一切似乎都运行良好,但是当我使用如下代码请求特定组件时:

它抛出异常:

有人知道这个热修复吗?

0 投票
4 回答
2565 浏览

tridion - Tridion 组件链接在动态组件演示中未解析

我目前正在 Tridion 2009 SP1 中实现功能,用户可以使用过滤器来查询代理以查找匹配标准,然后将组件演示文稿返回到页面。返回的每个项目都包含一个组件链接。

最初动态 CP 作为 HTML 片段存储在代理数据库中,但发现当以这种方式存储 CP 时,Tridion 会从内容中剥离组件链接并在 HTML 中留下空白区域。

然后我切换了设置,以便动态 CP 现在作为 ascx 控件存储在文件存储中。使用此设置时,将<tridion:ComponentLink ... />成功存储在 ascx 文件中。

但是,当我将结果呈现到屏幕上时,组件链接没有被解析,我只剩下<tridion:ComponentLink ... />我的结果源。

目前,我正在使用该GetComponentPresentation方法返回 CP 内容,然后将其添加到列表中,然后再绑定到中继器进行显示。

总结代码如下:

此列表以通常的方式绑定到转发器:

有谁知道我如何强制解决组件链接以及为什么该GetComponentPresentation功能不为我执行此操作?

有什么我应该做的不同的事情,或者这在我实现这个的方式上是不可能的吗?

我已确认tridiontagprefix 已在 web.config 中正确注册。

我对 Tridion 还很陌生,因此非常感谢任何帮助!

更新

我试图实施 Will 的建议,因为它似乎是最适合我的方案的解决方案,但是当我尝试将 Will 的建议与下面的代码一起使用时,我收到了一个(相当平淡的)错误:

实际上有 2 个错误(看似)随机发生,但总是在cpa.GetContent(...)调用时发生。错误是:

我似乎无法弄清楚为什么在我运行代码的时间之间错误会发生变化。即使没有更改代码,错误也会发生变化。

有人知道我在这里想念什么吗?我认为这将是与代理存储等的连接问题,但后来我记得当我使用ComponentPresentationFactory该类时该部分正在工作。

如果有帮助,作为 ascx 存储在文件存储中的 DCP 包含以下 HTML:

更新 2

感谢 Ryan,我发现我的 DCP (ASCX) 文件没有在 wwwroot 文件夹内的应用程序文件夹中发布,这解决了将<tridion:ComponentLink ... />标签直接输出到源的问题。它现在正在呈现,但链接仍未解决。<a ... />标签没有被输出。这就是汇编程序希望进入的地方——一旦我能让它工作。

我已经实现了更多的日志记录和检查,并获得了有关错误的更多信息,这表明我可能缺少 jar 文件或版本不正确:

有趣的是,当我使用ComponentPresentationFactory该类时,它可以工作(不解析内部链接),但是一旦我使用汇编程序,它就会抛出上述错误。

我还尝试按照 Alvin 的建议将 Page 添加到构造函数,但输出是相同的。

0 投票
2 回答
1561 浏览

.net - 在 .Net 项目中配置和使用 Broker API

有人可以向我指出有关设置代理 API 以从 .Net 应用程序使用的文档吗?我已经查看了关于 livecontent 的文档,但是我没有看到任何关于设置和配置要从 .net 项目中使用的代理 API 的具体内容:文档都与服务器相关。

我试图通过检查 OData 服务的设置方式将其拼凑起来,但我不断收到下面列出的错误。所以我错过了一步,但是哪一步呢?我需要更新一些 CD_*_CONF.xml 配置文件吗?

还有一个问题。是我还是 Tridion 文档有些不完整?关于如何使用产品的关键 API 之一的基本说明似乎是一个合理的要求。如果此文档存在,我提前道歉,但我错过了。

我遇到的错误

无法初始化类 com.tridion.storage.StorageManagerFactory

或者

ClassNotFoundException:com.tridion.broker.querying.Query

链接到实时内容上的“安装”主题

更新

感谢您及时的回复。我查看了“将服务器角色安装为 .net...”一文。看起来我已按照这些步骤操作,但我的应用程序找不到 JAR 文件。在这种情况下,cd_broker.jar 位于我的 .net 项目的 root/bin/lib 目录中

Java.Lang.ClassNotFoundException:com.tridion.broker.querying.Query

更新 2

我正在使用 Tridion 2011 SP1。

0 投票
2 回答
1052 浏览

tridion - 内容交付服务报告“无法检索所需结果”。

使用 Web 浏览器测试我的 Tridion 内容交付 Web 服务时,我可以通过调用“http://webservice/odata.svc/”成功获取可用集合的列表,但是当我尝试访问其中一个集合时,例子;

我明白了;

或特定项目

我得到:

在日志中,我得到以下信息(我删除了时间戳等以使其更具可读性):

此消息指向我的存储配置,但是我无法在文档中找到有关如何设置它以支持 Web 服务的任何明确指导。

我的存储应该如何配置?期望服务和网站有单独的部署程序是否正常?我还应该考虑哪些其他问题?

0 投票
2 回答
542 浏览

.net - 我们可以使用 .NET 自定义 Deployer 吗?

由于某些原因,我需要自定义部署器,我只能看到一些使用 java 自定义部署器的文章。

我们可以使用 .NET 项目自定义部署程序吗,请分享您的想法,如果可能的话,请分享一些解决方案。

0 投票
3 回答
385 浏览

asp.net - 当我们尝试使用 C# 2.0 从 Tridion 2009 代理 LINK_INFO 表中获取一些数据时,服务器性能下降

实际上我试图在我们的页面上实现谷歌标记,以便我们的用户控件将在页面标题部分呈现以下 HTML 类型

在上面的 html 中,您可以从 Broker LINK_INFO 表中找到 HTML“/ae/english/index.aspx、/au/english/index.aspx 等”的这一部分,这个实现工作正常,直到我们使用 LIVE 代理数据库进入 LIVE 网站,并且当我们在 LIVE 上启用此功能时,我们的服务器性能由于代理数据库的点击而被杀死,并且似乎锁定了 LINK_INFO 表,因为我们的网站每天有 150 万次点击,上述功能的工作原理如下:

  1. 每当加载任何网站页面时,它都会调用我们的代理,代理调用我们的 Web 服务,Web 服务调用我们的 SQL 过程,该过程会转到 LINK_INFO 表并根据传递给 SQL 过程的 PageID 取出结果列表。
  2. SQL 过程返回的 xml 结果然后被传递给我的 XSLT 使用它的控件,并在完整的 HTML 之上呈现出来。

似乎出了点问题,请建议是否有其他方法可以在不接触代理数据库的情况下实现上述功能。编写 Page EVENT 或自定义 Deployer 会有所帮助吗?

请推荐!!

注意:我们使用的是 Tridion 2009

编辑:代理 SQL 过程如下:

0 投票
2 回答
161 浏览

tridion - 来自多个网站的同步联系人问题

我们正面临观众管理器的配置文件同步服务的问题。

我们有这样的场景,我们分两步进行订阅:

  1. 我们正在使用唯一 id 的用户电子邮件地址,我们将记录保存在 tridion_submgmt 中,后来配置文件同步服务将此记录保存到 tridion_email 数据库中,并使用这个唯一的电子邮件 ID。
  2. 我们正在获取用户的出生日期和手机号码,我们希望更新相同的记录。

这 2 个步骤一个接一个地运行。

此外,我们有 87 个网站,其中有不同的地址簿和一个同步目标设置。

我们面临同步问题,有时记录正在更新,但有时记录未按步骤 2 更新。

请问有什么建议吗?

0 投票
2 回答
999 浏览

tridion - Tridion 2011 SP1:部署内容时出现问题

我们使用没有任何修补程序的 Tridion 2011 sp1 和 .net Web 应用程序 httpupload.aspx 在文件系统中部署内容。我们监测发现有两个问题:

1)在发布队列中成功发布的某些时间页面没有在文件系统中上传/更新。

2) 没有为因错误而失败的页面创建传输包:

部署失败阶段:部署处理阶段失败,无法初始化类 com.tridion.storage.StorageManagerFactory,无法初始化类 com.tridion.storage.StorageManagerFactory

同样在部署程序日志文件和传输程序日志文件中,没有对失败项目事务 ID 的引用。

谁能帮我解决这个问题?