Tridion性能分析和个性化错误:用户不能为空.请确保正确配置WAI

Jon*_*mer 9 asp.net tridion

我有一个ASP.NET页面(index.aspx)使用从Tridion 2011 SP1发布的分析和个性化.如果用户之前已经将3个标记的页面(通过cat + keywords)标记为"golf",则它只显示一个动态组件显示和第二个动态组件显示.

我通过将TBB的"目标组个性化"和"激活跟踪"添加到我的默认完成操作来启动分析.我重新发布了该页面并看到它使用分析代码创建了动态cp,一切顺利:

<tridion:ComponentPresentation runat="server" PageURI="tcm:8-667-64" ComponentURI="tcm:8-668" TemplateURI="tcm:8-666-32"/>
<tridion:TargetGroup runat="server" ItemURI="tcm:8-667-64">
    <tridion:Conditions runat="server" Negate="false" Operator="AND">
        <tridion:Conditions runat="server" Negate="false" Operator="OR">
            <tridion:Conditions runat="server" Negate="false" Operator="AND">
                <tridion:Condition runat="server" Type="TrackingKey" Operator="=" Negate="false" Name="Golf" Value="3"/>
                </tridion:Conditions>
            </tridion:Conditions>
    </tridion:Conditions>
    <tridion:ComponentPresentation runat="server" PageURI="tcm:8-667-64" ComponentURI="tcm:8-663" TemplateURI="tcm:8-666-32"/>  
</tridion:TargetGroup>
<tridion:IncrementKey runat="server" ItemURI="tcm:8-667-64" Name="Golf" ComponentURI="tcm:8-663"/>
Run Code Online (Sandbox Code Playgroud)

问题:当我在浏览器中查看index.aspx时,它给出了错误:

用户不能为空.请确保正确配置WAI

我检查了代理DB,那里没有数据.我相信我的cm_wai_conf.xml文件配置正确.我读过这篇文章,建议WAI使用我添加到windows中的环境变量REMOTE_USER,但仍然没有运气. http://sdltridionworld.com/articles/UsingPandPinDistributedEnvironments.aspx

有没有人以前遇到过这个错误,可以帮忙吗?如有必要,我可以提供我的cd_wai_conf.xml文件

在此先感谢,非常感谢您的帮助,这让我疯狂!

编辑:添加配置文件 XML不会在StackOverflow中呈现,所以我在PasteBin上添加了它:http://pastebin.com/tHwqhwtq

Jon*_*mer 10

多谢你们.你是对的.我的网站的web.config中未正确配置WAIModule.我的网站在IIS7集成模式下运行,因此我将其配置如下:

<system.webServer>
<directoryBrowse enabled="true" />
<modules>
    <add name="TridionWAIHttpModule" type="Tridion.ContentDelivery.Web.WAI.WAIModule, Tridion.ContentDelivery" preCondition="managedHandler" />
</modules>
<validation validateIntegratedModeConfiguration="false"/></system.webServer>
Run Code Online (Sandbox Code Playgroud)

这给了我一个新的错误"对象引用未设置为对象的实例".我将AppPool更改为经典模式,并添加了以下行:

<httpModules>
    <add type="Tridion.ContentDelivery.Web.WAI.WAIModule, Tridion.ContentDelivery" name="TridionWAIHttpModule" /> 
</httpModules>
Run Code Online (Sandbox Code Playgroud)

页面然后加载和分析和个性化工作100%

非常感谢你们这里的时间.我希望将来可以帮助别人.


Chr*_*ers 7

当您没有为您在cd_wai_conf.xml中访问该站点时使用的URL进行配置时,我已经看到了这一点.默认情况下,我相信这是使用localhost.确保为用于访问站点的任何URL定义了主机URL.

还要仔细检查您的WAI模块是否正确添加到您的webb应用程序的web.config中.在IIS中,确保您将模块放在正确的位置,这可能会有所不同,具体取决于您是在IIS6或更高版本,以及您的应用程序池是在经典模式还是集成模式.

  • 同意克里斯.首先检查您的WAIModule是否已正确启用,然后检查您的请求是否具有相应的已配置演示文稿(在cd_wai_conf.xml中).请注意,如果您没有启用WAIModule,您将获得完全错误.如果一直都很好,你仍然有错误...启用DEBUG日志记录(使用你网站的config文件夹中的logback.xml)并检查你得到的警告/错误.另一个小提示:在配置更改后重新测试,您只需要重新启动您正在更改的网站的AppPool. (2认同)