Я установил веб-службу доставки контента 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:
(Плюс стандартные)
В /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: