ASCX Web控件未存储在数据库中

时间:2012-10-20 12:13:49

标签: tridion tridion-2011 tridion-content-delivery

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

在我们现有的实现中,我们有各种动态组件模板。对于少数CT输出格式是ASCX Web Control少数CT输出格式是HTML Fragment。

发布后我们遇到了 1)ASCX WebControl不存储到存储数据库(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"/>

1 个答案:

答案 0 :(得分: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"/>