9

Tridion 2011 SP1から公開されたプロファイリングとパーソナライズを使用したASP.NETページ(index.aspx)があります。ユーザーが以前に「ゴルフ」としてタグ付けされた3つのページを(cat +キーワードで)表示したことがある場合は、1つの動的コンポーネントプレゼンテーションと2つ目の動的コンポーネントプレゼンテーションを表示するだけです。

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"/>

問題:ブラウザでindex.aspxを表示すると、次のエラーが発生します。

ユーザーをnullにすることはできません。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

4

2 に答える 2

10

みんなありがとう。あなたが正しい。WAIModuleが私のサイトのweb.configで正しく構成されていませんでした。私のサイトは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>

これにより、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」という新しいエラーが発生しました。AppPoolをクラシックモードに変更し、次の行を追加しました。

<httpModules>
    <add type="Tridion.ContentDelivery.Web.WAI.WAIModule, Tridion.ContentDelivery" name="TridionWAIHttpModule" /> 
</httpModules>

その後、ページが読み込まれ、プロファイリングとパーソナライズが100%機能しました

みなさん、ありがとうございました。これが将来誰か他の人に役立つことを願っています。

于 2012-07-27T13:15:33.500 に答える
7

cd_wai_conf.xml で、サイトへのアクセスに使用している URL にプレゼンテーション ID が設定されていない場合に、この問題が発生します。デフォルトでは、これはlocalhost. サイトへのアクセスに使用する URL に対してホスト URL が定義されていることを確認してください。

また、WAI モジュールが webb アプリの web.config に正しく追加されていることを再確認してください。IIS では、モジュールが正しい場所にあることを確認してください。これは、IIS6 以降を使用しているかどうか、およびアプリケーション プールがクラシック モードか統合モードかによって異なる場合があります。

于 2012-07-26T17:29:22.293 に答える