我已经在64位Windows 2008 R2系统上安装了Tridion内容交付web服务,打算配置UGC。(事实上,我有两个服务,它们都有相同的问题)。
我的服务配置了环境框架HttpModule,cd_ambient_conf.xml是产品附带的默认版本的副本,但是Security元素被注释掉了。我正在通过访问浏览器中的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:配置环境数据框架时出错错误):
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]发布于 2012-05-11 11:59:36
包含错误的可能是cd_ambient_cartridge_conf.xml。默认的墨盒是作为使用自定义墨盒的示例提供的。
从cd_ambient_conf.xml中取出该墨盒,然后再试一次。
空引用异常可能意味着您缺少UGC的jars和/或配置。请查看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__config中:
<Cartridges>
<Cartridge File="ugc_ambient_cartridge.xml"/>
</Cartridges>在/bin/config/cd_ugc_conf.xml中:
<ODataEndpoint URL="http://localhost:903/odata.svc" />这个文件中的其他所有内容都是默认的。
在/bin/lib中,与教资会有关:
https://serverfault.com/questions/388207
复制相似问题