【问题标题】:ASCX Web Controls are not stored in DatabaseASCX Web 控件未存储在数据库中
【发布时间】:2012-10-20 12:13:49
【问题描述】:

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

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

发布后我们遇到了 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"/>

【问题讨论】:

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


    【解决方案1】:

    您的存储配置中没有任何 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"/>
    

    【讨论】:

    • 虽然上面的方法是绝对正确的,但是我想我们可以再添加一个Item类型映射节点来代替.Asp标签。您的网站可能有一些asp内容可能会因更换此节点而受到影响。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-12
    • 2011-11-14
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 2019-12-29
    • 2016-01-15
    相关资源
    最近更新 更多