5

最近我们从 Tridion 5.3 升级到了 Tridion 2011 SP1。

在我们现有的实现中,我们有各种动态组件模板。少数 CT 的输出格式为 ASCX Web 控制,少数 CT 的输出格式为 HTML 片段。

发布后我们遇到 1) ASCX WebControls 不存储到存储数据库 (SQLServer)。在 Tridion 5.3 中它们是。2) HTML 片段被存储在数据库中。

在我们的实现中,二进制文件、页面、嵌入式组件模板存储在文件系统中,而动态组件模板存储在 SQL Sever 数据库中。

我们认为我们在 cd_storage_config 中遗漏了一些东西。请找到附加的配置文件。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration Version="6.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schemas/cd_storage_conf.xsd">
<Global>
    <ObjectCache Enabled="false">
        <Policy Type="LRU" Class="com.tridion.cache.LRUPolicy">
            <Param Name="MemSize" Value="16mb"/>
        </Policy>
        <Features>
            <Feature Type="DependencyTracker" Class="com.tridion.cache.DependencyTracker"/>
        </Features>
    </ObjectCache>
    <Storages>
        <Storage Type="persistence" Id="sqlserver" 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="local" />
                <Property Name="portNumber" Value="1433" />
                <Property Name="databaseName" Value="TridionBroker" />
                <Property Name="user" Value="TridionBrokerUser" />
                <Property Name="password" Value="mypass" />
            </DataSource>
        </Storage>
        <Storage Type="filesystem" Class="com.tridion.storage.filesystem.FSDAOFactory" Id="defaultFile" defaultFilesystem="false">
            <Root Path="d:\Inetpub\MyPortal" />
        </Storage>
        <Storage Type="filesystem" Class="com.tridion.storage.filesystem.FSDAOFactory" Id="defaultDataFile" defaultFilesystem="true" defaultStorage="true">
            <Root Path="d:\Inetpub\MyPortal\data" />
        </Storage>
        <SearchFilter Name="SearchFilter" Class="com.tridion.broker.components.meta.MsSqlSearchFilterHome" defaultStorageId="sqlserver"/>
    </Storages>
</Global>
<ItemTypes defaultStorageId="defaultDataFile" cached="false">
    <Item typeMapping="Query" storageId="sqlserver"/>
    <Item typeMapping="Page" cached="false" storageId="defaultFile"/>
    <Item typeMapping="Binary" cached="false" storageId="defaultFile"/>
    <Item typeMapping="ComponentPresentation" itemExtension=".Jsp" storageId="sqlserver"/>
    <Item typeMapping="ComponentPresentation" itemExtension=".Asp" storageId="sqlserver"/>
    <Item typeMapping="ComponentPresentation" itemExtension=".Xml" storageId="sqlserver"/>
    <Item typeMapping="ComponentPresentation" itemExtension=".Txt" storageId="sqlserver"/>
    <Item typeMapping="Metadata" cached="true" storageId="sqlserver"/>
    <Item typeMapping="XSLT" cached="true" storageId="sqlserver"/>
</ItemTypes>
<License Location="d:\Tridion\config\cd_licenses.xml"/>

4

1 回答 1

10

您的存储配置中没有任何 ascx 绑定。在 5.3 中,它曾经是 Asp 绑定。

更改以下内容:

<Item typeMapping="ComponentPresentation" itemExtension=".Asp" storageId="sqlserver"/>

到:

<Item typeMapping="ComponentPresentation" itemExtension=".ascx" storageId="sqlserver"/>

此外,在 tridion 2011 中,如果您希望所有内容都存储在 db 中,则无需为每种类型(如 txt、jsp 等)指定映射。

你可以简单地这样做:

<Item typeMapping="ComponentPresentation" storageId="sqlserver"/>
于 2012-10-20T12:22:12.787 回答