Назад | Перейти на главную страницу

Доставка контента Tridion «Ошибка при настройке среды внешних данных»

Я установил веб-службу доставки контента Tridion в 64-битной системе Windows Server 2008 R2, намереваясь настроить UGC. (На самом деле у меня есть две службы, у которых одна и та же проблема).

В моей службе настроена внешняя структура HttpModule, а cd_ambient_conf.xml является копией версии по умолчанию, поставляемой с продуктом, однако элемент безопасности закомментирован. Я тестирую, посещая конечную точку odata.svc в браузере.

В элементе Картриджи у меня есть следующее:

<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 проходит проверку схемы, поэтому, возможно, нет.

Итак ... что может быть причиной этой проблемы, и есть ли какие-либо методы отладки или анализа, которые могут помочь мне узнать больше?

РЕДАКТИРОВАТЬ: я удалил ссылку cd_ambient_cartridge_conf.xml из картриджей. Таким образом, используя только ссылку ugc_ambient_cartridge.xml, я получаю следующую ошибку в журнале cd_core (и я снова получаю ошибку [AmbientDataException: Error при настройке среды окружающих данных]):

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]

Вероятно, cd_ambient_cartridge_conf.xml содержит ошибки. Картридж по умолчанию поставляется как пример о том, что можно сделать с нестандартным картриджем.

Удалите этот картридж из вашего cd_ambient_conf.xml и повторите попытку.

Исключение нулевой ссылки, вероятно, означает, что вам не хватает jar-файлов и / или конфигурации для UGC. Дополнительную информацию можно найти в журналах Tridion.

UPDATE

Вот что у меня есть на моем веб-сайте с поддержкой пользовательского контента:

В 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.ContentDelivery.AmbientData.dll
  • Tridion.ContentDelivery.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_webservice.jar
  • ugc_dynamic.jar
  • ugc_model.jar
  • ugc_storage.jar
  • ugc_taglib.jar
  • cd_ambient.jar