Tridion 内容交付“配置环境数据框架时出错”

Tridion 内容交付“配置环境数据框架时出错”

我在 64 位 Windows Server 2008 R2 系统上安装了 Tridion 内容交付 Web 服务,打算配置 UGC。(实际上我有两个服务,都出现了同样的问题)。

我的服务已配置环境框架 HttpModule,并且 cd_ambient_conf.xml 是产品附带的默认版本的副本,但 Security 元素已被注释掉。我正在通过浏览器中访问 odata.svc 端点进行测试。

在 Cartridges 元素中,我有以下内容:

<Cartridges>
        <Cartridge File="cd_ambient_cartridge_conf.xml"/>
        <Cartridge File="ugc_ambient_cartridge.xml"/> 
</Cartridges>

当像这样配置时,或者如果我注释掉 cd_ambient 墨盒并保留 ugc_ambient 墨盒,我会收到一个空引用异常:

[NullReferenceException: Object reference not set to an instance of an object.]
Tridion.ContentDelivery.AmbientData.HttpModule.OnRequestStart
                                                (Object sender, EventArgs e) +292
System.Web.SyncEventExecutionStep.System.Web
                                    .HttpApplication.IExecutionStep.Execute() +79
System.Web.HttpApplication.ExecuteStep(
                       IExecutionStep step, Boolean& completedSynchronously) +269

如果我仅配置 cd_ambient 墨盒,那么我会收到以下错误:

[AmbientDataException: Error while configuring ambient data framework]

如果我移除两个墨盒,服务就会启动而不会出现错误。我猜测空引用错误可能是由于缺少配置值引起的,但至少 cd_ambient_conf.xml 通过了架构验证,所以可能不是。

那么... 什么可能是导致该问题的原因,是否有任何调试或分析技术可以帮助我找到更多信息?

编辑:我现在已经从 Cartridges 中删除了 cd_ambient_cartridge_conf.xml 引用。因此,仅使用 ugc_ambient_cartridge.xml 引用,我在 cd_core 日志中收到以下错误(并且我又回到了 [AmbientDataException:配置环境数据框架时出错] 错误):

2012-05-11 15:03:51,073 WARN  AmbientDataContext - There is no current ambient 
       data context - the ambient data framework is not properly initialised
2012-05-11 15:03:51,171 ERROR EngineFactory - Unable to configure the 
                                                       AmbientData Framework
com.tridion.configuration.ConfigurationException: 
   Can't find configuration file: [ ugc_ambient_cartridge.xml ]
at         com.tridion.configuration.XMLConfigurationReader.readConfiguration(
                                XMLConfigurationReader.java:92) ~[cd_core.jar:na]
at         com.tridion.ambientdata.AmbientDataConfig.getCartridgeConfigurations(
                                 AmbientDataConfig.java:155) ~[cd_ambient.jar:na]
at com.tridion.ambientdata.EngineFactory.newEngine(
                                      EngineFactory.java:45) ~[cd_ambient.jar:na]

答案1

可能是 cd_ambient_cartridge_conf.xml 包含错误。默认墨盒作为例子您可以使用自定义墨盒做什么。

从 cd_ambient_conf.xml 中取出该墨盒并重试。

空引用异常可能意味着您缺少 jar 和/或 UGC 配置。请查看 Tridion 日志以获取有关此问题的其他信息。

UPDATE

以下是我支持 UGC 的网站内容:

在 Web.Config 中(仅显示相关部分):

<appSettings>
    <add key="webpages:Version" value="1.0.0.0"/>
    <add key="ClientValidationEnabled" value="true"/>
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
    <add key="ODataEndpoint.URL" value="http://localhost:903/odata.svc"/>
    <add key="ODataEndpoint.ConnectionTimeout" value="20000"/>
    <add key="ODataEndpoint.ReadTimeout" value="20000"/>
</appSettings>
[...]
<controls>
    <add tagPrefix="tridion" namespace="Tridion.ContentDelivery.Web.UI" assembly="Tridion.ContentDelivery"/>
    <add tagPrefix="ugc" namespace="Tridion.ContentDelivery.UGC.Web.UI" assembly="Tridion.ContentDelivery.UGC" />
</controls>
[...]
<modules runAllManagedModulesForAllRequests="true">
  <add type="Tridion.ContentDelivery.AmbientData.HttpModule" name="AmbientFrameworkModule" preCondition="managedHandler" />
</modules>

在 /bin 中:

  • Tridion.内容交付.AmbientData.dll
  • Tridion.内容交付.UGC.dll

(加上标准款)

在 /bin/config/cd_ambient_conf.xml 中:

<Cartridges>
    <Cartridge File="ugc_ambient_cartridge.xml"/>
</Cartridges>

在 /bin/config/cd_ugc_conf.xml 中:

<ODataEndpoint URL="http://localhost:903/odata.svc" />

此文件中的所有其他内容均为默认内容。

在/bin/lib中,UGC相关:

  • ucg_tcdl.jar
  • ugc_web服务
  • ugc_动态.jar
  • ugc模型
  • ugc_存储.jar
  • 标签库
  • 环境变量

相关内容