我在64位Windows Server 2008 R2系统上安装了Tridion内容交付Web服务,打算configurationUGC。 (事实上,我有两个服务,都performance出同样的问题)。
我的服务configuration了环境框架HttpModule,而cd_ambient_conf.xml是产品随附的默认版本的副本,但Security元素已被注释掉。 我正在通过访问浏览器中的odata.svc端点进行testing。
在Cartridges元素中,我有以下几点:
<Cartridges> <Cartridge File="cd_ambient_cartridge_conf.xml"/> <Cartridge File="ugc_ambient_cartridge.xml"/> </Cartridges>
当像这样configuration,或者如果我注释掉cd_ambient墨盒,并离开ugc_ambient墨盒,我得到一个空引用exception:
[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
如果我只configuration了cd_ambient盒式磁带,那么我得到以下错误:
[AmbientDataException: Error while configuring ambient data framework]
如果我删除了这两个墨盒,服务出现没有错误。 我猜测空引用错误是由可能缺less的configuration值引起的,但是至lesscd_ambient_conf.xml会传递模式validation,所以可能不会。
所以…这个问题的原因可能是什么,有没有什么debugging或分析技术可以帮助我找出更多的问题?
编辑:我现在已经从Cartridges中删除了cd_ambient_cartridge_conf.xml参考。 所以只有ugc_ambient_cartridge.xml引用,我得到了cd_core日志中的以下错误(和我回来得到[AmbientDataException:configuration环境数据框架时出错]错误):
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中删除该盒式磁带,然后重试。
空引用exception可能意味着你缺lessUGC的jar子和/或configuration。 检查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中:
(加上标准的)
在/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相关: