Постоянно обновлять предварительный просмотр оповещения в SDL Tridion UI 2012

Я пытаюсь установить новые функциональные возможности SDL Tridion UI 2012 на некоторых тестовых (по умолчанию) страницах. Я постоянно получаю & quot; Предварительный просмотр этой страницы не обновлен & quot; оповещение, несмотря на то, что я нажимаю & quot; Обновить предварительный просмотр & quot; Несколько раз. Я использовал виртуальное изображение, поэтому никто другой не может редактировать страницу, кроме меня самого. Не имеет значения, какой компонент изменился. Я заглянул в файл 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: [email protected], 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

Самым интересным является то, что сессионные оболочки были добавлены в cd_storage_conf.xml в разделе «Предварительный просмотр сессии». сторона веб-сервиса. Сильфон является частью «предварительного просмотра сеанса» 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 и все в порядке (попробуйте открыть XML через IE, и он будет показан правильно).

Когда я переиздаю страницу (Закончить редактирование), все переходит в правильное состояние после перезагрузки страницы, пока не произойдет первое изменение каких-либо компонентов. Это неожиданное состояние дало мне такую сильную боль и головную боль, более того, я стал таким нервным ... :).

 Bogdan Stojanovic28 мая 2012 г., 20:50
@Frank Хотите поделиться со мной, как & quot; раскрасить & quot; код для того, чтобы стало более читабельным ...
 Frank van Puffelen28 мая 2012 г., 20:55
Я добавил & lt;! - язык: c # - & gt; тег перед этим. Если вы нажмете метку времени моего редактирования (например, текст «14 минут назад»), вы увидите точную разницу. Кроме того, я переписал ваш XML, что также немного улучшает читабельность.

Ответы на вопрос(1)

Решение Вопроса

Вот что делает Update Preview, убедитесь, что все шаги вплоть до фактического обновления страницы работают и правильно настроены, и вы должны хорошо это сделать:

Render your template(s) in Preview Mode Post the results to the Content Delivery Web Service CD Web Service writes to Session Wrapper Database Refresh the page Ambient Framework filters (or HTTP Modules for .NET) check for a session token DB is queried searching for content with the same session token If content is found, it is merged with the content on the page.

Типичные проблемы (по моему опыту пока) связаны с настройкой Ambient Framework. Либо модули не установлены / не настроены в вашем приложении, либо файл cd_ambient_conf.xml содержит недопустимые параметры конфигурации.

Возможно, стоит отследить журналы, начиная с шага 1, чтобы выяснить, где они терпят неудачу - знание того, где они терпят неудачу, обычно составляет 80% решения.

 Bogdan Stojanovic29 мая 2012 г., 23:56
Оба web.configs (веб-сервис и промежуточный сайт содержат ссылку на [Tridion.ContentDelivery.AmbientData.HttpModule] внутри [System.webserver \ modules] и [system.web \ httpModules]. Веб-сервис предварительного просмотра сеанса содержит [Tridion.ContentDelivery.AmbientData .dll] внутри папки bin, а также [cd_preview_ambient.jar] и [cd_preview_webservice.jar] внутри папок lib. Существуют ли какие-либо дополнительные параметры / конфигурации, связанные с включением среды внешних данных? .xml & quot; / & gt;] внутри узла [Картриджи] ...
 30 мая 2012 г., 13:11
Веб-служба использует другое хранилище утверждений (по умолчанию), его не следует изменять. Вы пытались использовать готовые веб-приложения, которые поставляются вместе с установщиками? Я бы попробовал сравнить версии DLL и Jars (с чем-то вроде Beyond Compare). Предварительно созданные приложения можно найти в папке [Папка установки пользовательского интерфейса] \ Content Delivery \ role \ Web | WebService \ dotNet
 Bogdan Stojanovic29 мая 2012 г., 23:56
Я нашел следующие интересные внутри журнала веб-службы предварительного просмотра сессии [SessionManagerImpl - Нет претензий хранилище !!! Ambient Framework, вероятно, не включен!]. На промежуточном сайте внутри находится cd_ambient_conf.xml [& lt; ClaimStoreProvider & gt; com.tridion.siteedit.preview.PreviewClaimStoreProvider & lt; / ClaimStoreProvider & gt;]. Также при редактировании некоторых компонентных полей я могу видеть изменения, только если нажать на поле. Я проверил и веб-сервис установлен, как и ожидалось, он возвращает значения ...
 Bogdan Stojanovic31 мая 2012 г., 13:35
Проблема решена. [Tridion.ContentDelivery.Preview.dll] был размещен как на веб-службе предварительного просмотра сеанса, так и на промежуточном сайте. Удаление из веб-службы предварительного просмотра сеанса вместе с перезапуском IIS приводит к полной функциональности пользовательского интерфейса. @NunoСпасибо, что показали мне путь ... Во всяком случае с моей точки зрения это отличная особенность

Ваш ответ на вопрос