在SDL Tridion UI 2012上连续更新预览警报

时间:2012-05-28 17:39:21

标签: tridion tridion-2011

我正在尝试在某些测试(默认)页面上建立新的SDL Tridion UI 2012功能。尽管我多次点击“更新预览”,但我不断检索“此页面的预览不是最新”警告。我正在使用虚拟图像,所以除了我自己以外,其他任何人都无法编辑页面。无论哪个组成部分发生变化我已经在“会话预览”Web服务端查看了cd_core.log文件,并发现这些节点很有趣:

INFO  WritableODataClaimProcessor - No session wrapper is installed, not allowing modification operations
DEBUG HandleSessionContentUtil - There are no session wrappers into storage config file!
DEBUG HandleSessionContentUtil - There are no session wrappers into storage config file!
DEBUG WebContext - setCurrentClaimStore: com.tridion.siteedit.preview.PreviewClaimStore@dc60af, thread: Thread-59
DEBUG WritableODataClaimProcessor - Removing sessionId claim from ClaimStore!
DEBUG ClaimStore - remove: uri=taf:claim:contentdelivery:webservice:preview:sessionid
DEBUG WebContext - setCurrentClaimStore: null, thread: Thread-59

最有趣的部分是会话包装器被添加到“会话预览”Web服务端的cd_storage_conf.xml中。 Bellow是“会话预览”cd_storage_conf.xml的一部分:

    <Storages>       
        <Wrappers>               
            <Wrapper Name="SessionWrapper">             
                <Timeout>120000</Timeout>                  
                <Storage Type="persistence" Id="sqlServerDb" dialect="MSSQL" Class="com.tridion.storage.persistence.JPADAOFactory">
                    <Pool Type="jdbc" Size="5" MonitorInterval="60" IdleTimeout="120" CheckoutTimeout="120" />
                    <DataSource Class="com.microsoft.sqlserver.jdbc.SQLServerDataSource">
                        <Property Name="serverName" Value="T2011" />
                        <Property Name="portNumber" Value="1433" />
                        <Property Name="databaseName" Value="Tridion_Session_Preview"/>
                        <Property Name="user" Value="TridionSessionPreview"/>
                        <Property Name="password" Value="tridion"/>
                    </DataSource>
                </Storage>                   
            </Wrapper>
        </Wrappers>            
        <StorageBindings>
            <Bundle src="preview_dao_bundle.xml"/>            
        </StorageBindings>       
        <Storage Type="filesystem" Class="com.tridion.storage.filesystem.FSDAOFactory" Id="staging" defaultFilesystem="false">
            <Root Path="C:\inetpub\wwwroot\software" />
        </Storage>
       <Storage Type="persistence" Id="sqlServerDb" dialect="MSSQL" Class="com.tridion.storage.persistence.JPADAOFactory">
            <Pool Type="jdbc" Size="5" MonitorInterval="60" IdleTimeout="120" CheckoutTimeout="120" />
            <DataSource Class="com.microsoft.sqlserver.jdbc.SQLServerDataSource">
                <Property Name="serverName" Value="T2011" />
                <Property Name="portNumber" Value="1433" />
                <Property Name="databaseName" Value="Tridion_Broker_Staging"/>
                <Property Name="user" Value="TridionBrokerUser"/>
                <Property Name="password" Value="tridion"/>
            </DataSource>
        </Storage>
    </Storages>    
</Global>

<ItemTypes defaultStorageId="sqlServerDb" cached="false">
    <Item typeMapping="Page" cached="false" storageId="staging"/>
</ItemTypes>

我检查了cd_storage_conf.xml的有效状态,一切正常(尝试通过IE打开XML并且显示正确)。

当我重新发布页面(完成编辑)后,重新加载页面后所有内容都处于正确状态,直到对任何组件进行第一次更改为止。这种意想不到的状态给了我如此强烈的痛苦和头痛,进一步让我如此紧张...... :)。

1 个答案:

答案 0 :(得分:15)

以下是Update Preview的功能,确保实际页面刷新的所有步骤都能正常配置,并且您应该做得很好:

  1. 以预览模式
  2. 呈现模板
  3. 将结果发布到Content Delivery Web服务
  4. CD Web服务写入会话包装器数据库
  5. 刷新页面
  6. Ambient Framework过滤器(或.NET的HTTP模块)检查会话令牌
  7. 查询数据库,搜索具有相同会话令牌的内容
  8. 如果找到内容,则会将其与页面上的内容合并。
  9. 典型问题(根据我的经验到目前为止)是围绕Ambient Framework配置 - 在您的应用程序上未安装/配置模块,或者cd_ambient_conf.xml包含无效的配置设置。

    可能值得跟踪步骤1中的日志以找出失败的位置 - 知道失败的位置通常是解决方案的80%。