Return to doc.sitecore.com

  Configuration file changes in Sitecore CMS 6.5.0 and DMS 2.0.1 rev. 120427 compared to Sitecore CMS 6.5.0 and DMS 2.0.0 rev. 111230

This update requires you to make changes to the following files:

The clean config files for Sitecore CMS 6.5.0 and DMS 2.0.1 rev. 120427 can be downloaded using the following links:

Changes to the Web.config file

The following changes have been made to the Web.config file of Sitecore CMS 6.5.0 rev. 120427 (Update-4) as compared to the Web.config file of Sitecore CMS 6.5.0 rev. 111230 (Update-3):

  1. In the <sitecore><events><event name="item:copied"> section, add a node for a new handler for Sitecore.Links.ItemEventHandler:
    <event name="item:copied">
      <handler type="Sitecore.Links.ItemEventHandler, Sitecore.Kernel" method="OnItemCopied"/>
      <handler type="Sitecore.Tasks.ItemEventHandler, Sitecore.Kernel" method="OnItemCopied"/>
    </event>
  2. In the <httpRequestBegin> pipeline, add a node for a new processor of type PageEditorHandleNoLayout, between the LayoutResolver and the ExecuteRequest processor:
      <processor type="Sitecore.Pipelines.HttpRequest.LayoutResolver, Sitecore.Kernel"/>
      <processor type="Sitecore.Pipelines.HttpRequest.PageEditorHandleNoLayout, Sitecore.Kernel"/>
      <processor type="Sitecore.Pipelines.HttpRequest.ExecuteRequest, Sitecore.Kernel"/>
  3. In the <pipelines> section, add the following pipeline:
    <!-- Gets the validators, that will be executed when saving page in Page Editor-->
    <getPageEditorValidators>
      <processor type="Sitecore.Pipelines.GetPageEditorValidators.CheckSettings, Sitecore.Kernel"/>
      <processor type="Sitecore.Pipelines.GetPageEditorValidators.GetItemValidators, Sitecore.Kernel"/>
      <processor type="Sitecore.Pipelines.GetPageEditorValidators.GetGlobalValidators, Sitecore.Kernel"/>
      <processor type="Sitecore.Pipelines.GetPageEditorValidators.GetFieldValidators, Sitecore.Kernel"/>        
    </getPageEditorValidators>
  4. In the <pipelines> section, the <filterItem> has been changed. The previous two processors have been removed and replaced by four new processors. The pipeline now looks like this:
    <!-- Item filtering. Used for publishing items on the fly when a web site runs in live mode. -->
    <filterItem>
      <processor type="Sitecore.Pipelines.FilterItem.CheckIfFilteringIsActive, Sitecore.Kernel"/>
      <processor type="Sitecore.Pipelines.FilterItem.DisableApprovedVersionFiltering, Sitecore.Kernel"/>
      <processor type="Sitecore.Pipelines.FilterItem.GetPublishedVersionOfItem, Sitecore.Kernel"/>
      <processor type="Sitecore.Pipelines.FilterItem.EnsureFilteredItem, Sitecore.Kernel"/>
    </filterItem>
  5. In the <sitecore><processors><saveUI> section, a new CheckBaseTemplateFieldChange processor has been added between Lock and CheckTemplateFieldChange processors:
      <processor mode="on" type="Sitecore.Pipelines.Save.Lock, Sitecore.Kernel"/>
      <processor mode="on" type="Sitecore.Pipelines.Save.CheckBaseTemplateFieldChange, Sitecore.Kernel"/>
      <processor mode="on" type="Sitecore.Pipelines.Save.CheckTemplateFieldChange, Sitecore.Kernel"/>
  6. In the <sites><site name=”shell” … > section, add a new property for analyticsDefinitions. The default site definition for the "shell" site now looks like this:
    <site name="shell" virtualFolder="/sitecore/shell" physicalFolder="/sitecore/shell" rootPath="/sitecore/content" startItem="/home" language="en" database="core" domain="sitecore" loginPage="/sitecore/login" content="master" contentStartItem="/Home" enableWorkflow="true" enableAnalytics="false" analyticsDefinitions="content" xmlControlPage="/sitecore/shell/default.html" browserTitle="Sitecore" htmlCacheSize="2MB" registryCacheSize="3MB" viewStateCacheSize="200KB" xslCacheSize="5MB"/>
  7. In the <settings> section, add the following setting:
    <!--  ITEM CLONING NON INHERITED FIELDS
          Specifies a pipe-separated list of field names or field IDs which should be not be inherited by clones from their source item,
          in addition to the following fields from the standard template that are never be inherited:
            Updated, Updated by, Revision, Created, Created by, Source, Workflow, Workflow State, Lock
          Example: "__Renderings" (or "{F1A1FE9E-A60C-4DDB-A3A0-BB5B29FE732E}") will exclude the __Renderings field (also known as the
          Layout field) so that clones do not inherit presentation details from their source items.
          Default value: ""
    -->
    <setting name="ItemCloning.NonInheritedFields" value=""/>
  8. In the <settings> section, add the following setting:
    <!--  MEDIA - ENABLE RANGE RETRIEVAL REQUEST
          Enables or disables range retrieval requests (see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2)
    -->
    <setting name="Media.EnableRangeRetrievalRequest" value="true"/>
  9. In the <settings> section, add the following setting:
    <!--  WEB EDIT ENABLE VALIDATION
          If true, the Page Editor will execute item and field validation rules whenever a user tries to save items in the Page Editor.
          Only 'Critical' and 'Fatal' validators are evaluated, and item validation rules are executed for the current context item only.
          Field validation rules are only executed for fields that the current user can modify in the Page Editor.
          Default value: true
    -->
    <setting name="WebEdit.EnableValidation" value="true"/>

The following steps are related to issues merged from 6.4.1 Update-6, so you do not need to make these changes if your solution was upgraded to CMS 6.5 from 6.4.1 Update-6 or later (but you should still update the other 6.5 configuration files as described later in this document).

  1. The interpolation mode for dynamically scaled images will now be using the value of the Media.InterpolationMode setting in the web.config, which by default is set to "High", whereas dynamically scaled images in previous versions would be resized using the "HighQualityBicubic" interpolation mode. The difference should be minor for most use cases, but we recommend that customers who need the best possible quality change the Media.InterpolationMode setting to "HighQualityBicubic".
  2. A new attribute ("lowercaseUrls") has been added to the linkManager/providers section with a default value of "false", so that the entire linkManager section now looks like this:
    <!-- Options (first is default):
           addAspxExtension: true | false (If you set this to false, remember to configure IIS to map all requests (*) to ASP.NET)
           alwaysIncludeServerUrl: false | true
           encodeNames: true | false
           languageEmbedding: asNeeded | always | never
           languageLocation: filePath | queryString
           lowercaseUrls: true | false
           shortenUrls: true | false
           useDisplayName: false | true
    -->
    <linkManager defaultProvider="sitecore">
      <providers>
        <clear/>
        <add name="sitecore" type="Sitecore.Links.LinkProvider, Sitecore.Kernel" addAspxExtension="true" alwaysIncludeServerUrl="false" encodeNames="true" languageEmbedding="asNeeded" languageLocation="filePath" lowercaseUrls="false" shortenUrls="true" useDisplayName="false"/>
      </providers>
    </linkManager>
  3. Add the following node as the first one in the <sitecore><mediaLibrary> section:
    <!-- MEDIA PROVIDER
       The media provider used to generate URLs, create media items, control media caching, parse media requests, and other
       media related functionality.      
    -->
    <mediaProvider type="Sitecore.Resources.Media.MediaProvider, Sitecore.Kernel"/>
  4. Add the following setting to the <settings> section. If the editors of your site should be allowed to insert script into RTE fields, change the value of this setting to "false". Otherwise existing script will be removed from RTE fields the next time the editor saves items that contain script:
    <!-- HTML EDITOR REMOVE SCRIPTS
          If true, the rich text editor removes script tags from RTE field values before saving. Setting the value to true reduces the potential for cross-site scripting and other script-related issues.
          Default value: true
    -->
    <setting name="HtmlEditor.RemoveScripts" value="true"/>
  5. Add the following setting to the <settings> section:
    <!--  MEDIA ALWAYS INCLUDE SERVER URL
          If true, Sitecore will generate absolute URLs when it uses the MediaProvider API and/or the link provider to render media URLs.
          If blank, Sitecore will use the same value as the alwaysIncludeServerUrl attribute from the link provider.
          Default value: "" (use the value from the link provider)
    -->
    <setting name="Media.AlwaysIncludeServerUrl" value=""/>
  6. Add the following setting to the <settings> section:
    <!-- MEDIA - DEFAULT IMAGE BACKGROUND COLOR
          The default background color for dynamically resizing images to different aspect ratios than the originals.
          Sitecore applies this background color only for image types that do not support transparency (image/jpeg, image/gif and image/bmp).
          When resizing any other image types (including image/png), Sitecore always applies a transparent background.
          You can specify a color name (such as Black or Red) or a hex color code (such as #CE55E2).
          If you specify no value, Sitecore applies a black background color when resizing such images.
          Default value: ""
    -->
    <setting name="Media.DefaultImageBackgroundColor" value=""/>
  7. Add the following three settings to the <settings> section:
    <!--  MEDIA - RESIZING - QUALITY
          Specifies the level of compression to use when resizing images.
          See also the System.Drawing.Imaging.Encoder.Quality field.
          The range of values is 0 (lowest quality) to 100 (highest quality).
          Default value: 95
    -->
    <setting name="Media.Resizing.Quality" value="95"/>
    <!--  MEDIA - RESIZING - COMPOSITING MODE
          Specifies how the source colors are combined with the background colors when resizing images.
          See also the System.Drawing.Drawing2D.CompositingMode enum.
          Valid values:  SourceOver  (the source color is blended with the background color, as determined by the alpha component of the source color)
                         SourceCopy  (the source color overwrites the background color)
          Default value: SourceCopy
    -->
    <setting name="Media.Resizing.CompositingMode" value="SourceCopy"/>
    <!--  MEDIA - RESIZING - PIXEL OFFSET MODE
          Specifies how pixels are offset when resizing images.
          See also the System.Drawing.Drawing2D.PixelOffsetMode enum.
          Valid values:  Default     (default)
                         HighSpeed   (high speed, low quality)
                         HighQuality (high quality, low speed)
                         None        (no pixel offset)
                         Half        (pixels are offset by -.5 units, for high speed antialiasing)
          Default value: Half
    -->
    <setting name="Media.Resizing.PixelOffsetMode" value="Half"/>
  8. Add the following two settings to the <settings> section:
    <!-- RENDERING - SITE RESOLVING MATCH CURRENT LANGUAGE
          Affects how cross-site links are rendered when Rendering.SiteResolving is enabled.
          If true, the link provider will take the language attribute of the site definitions into consideration when resolving
          which site/hostname to use when rendering a cross-site link.
          Default value: true
    -->
    <setting name="Rendering.SiteResolvingMatchCurrentLanguage" value="true"/>
    <!--  RENDERING - SITE RESOLVING MATCH CURRENT SITE
          Affects how cross-site links are rendered when Rendering.SiteResolving is enabled.
          If true, the link provider will check if the target item is located under the start item for the current site before it
          tries to find a match in the full list of site definitions. This ensures that when the target item can be resolved using
          the current site, the target link will not change to a different site/hostname.
          Default value: true
    -->
    <setting name="Rendering.SiteResolvingMatchCurrentSite" value="true"/>

Changes to the Commands.config file

The following changes have been made to the /App_Config/Commands.config file of Sitecore CMS 6.5.0 rev. 120427 (Update-4) as compared to the /App_Config/Commands.config file of Sitecore CMS 6.5.0 rev. 111230 (Update-3):

  1. Add the following command after the "analytics:synchronizedatabase" command:
    <command name="analytics:updatereports" type="Sitecore.Shell.Applications.Analytics.Reports.Summary.Update,Sitecore.Client"/>

Changes to the FieldTypes.config file

The following changes have been made to the /App_Config/FieldTypes.config file of Sitecore CMS 6.5.0 rev. 120427 (Update-4) as compared to the /App_Config/FieldTypes.config file of Sitecore CMS 6.5.0 rev. 111230 (Update-3):

  1. Change the "Tracking" field type definition in the "Developer Types" section of the file from:
    <fieldType name="Tracking" type="Sitecore.Data.Fields.TextField,Sitecore.Kernel" resizable="true" />
    to:
    <fieldType name="Tracking" type="Sitecore.Analytics.Data.TrackingField,Sitecore.Analytics" resizable="true" />

Changes to the Sitecore.Analytics.config file

The following changes have been made to the Sitecore.Analytics.config file of DMS 2.0.1 rev. 120427 as compared to the Sitecore.Analytics.config file of DMS 2.0.0 rev. 111230.

  1. Add the following settings to the <settings> section:
    <!--  ANALYTICS VISIT END CHECK INTERVAL
          Sitecore periodically runs a background job to check if there are any visits in the Analytics database that have expired and for
          which the visitEnd pipeline has not yet been executed. The background job then executes the visitEnd pipeline for these visits.
          This setting specifies how often (in milliseconds) this background job is executed.
          Default: 60000 (60 seconds)
    -->
    <setting name="Analytics.VisitEnd.CheckInterval" value="60000" />

    <!--  ANALYTICS VISIT END MAX ROWS
          This setting defines the size of the batches to read from the database when Sitecore processes the expired visits for which the
          visitEnd pipeline has not yet been executed.
          We recommended that you set this setting should not exceed 10000 or performance could suffer.
          Default: 1000
    -->
    <setting name="Analytics.VisitEnd.MaxRows" value="1000" />

    <!--  ANALYTICS VISIT END PROCESSING TIME OUT
          When Sitecore processes expired visits, the background job marks the rows in the database that it is about to process. If, for
          some reason, the background job does not successfully process all the rows, the rows will be processed again at a later time.
          This can happen, for example, if the server restarts while the background job is running.
          This setting specifies the minimum wait time (in minutes) before the rows can be selected for re-processing.
          Default: 20 (20 minutes)
    -->
    <setting name="Analytics.VisitEnd.ProcessingTimeOut" value="20" />
  2. Add the following nodes to the <scheduling> section:
    <agent type="Sitecore.Analytics.Tasks.UpdateReportsSummaryTask, Sitecore.Analytics" method="Run" interval="00:30:00">
      <UpdateReportsSummaryAt>23:30:00</UpdateReportsSummaryAt>
    </agent>
  3. Add the following nodes to the <pipelines> section:
    <startAnalytics>
      <processor type="Sitecore.Analytics.Pipelines.StartAnalytics.Init,Sitecore.Analytics" />
    </startAnalytics>

    <endAnalytics>
      <processor type="Sitecore.Analytics.Pipelines.EndAnalytics.EndTracking,Sitecore.Analytics" />
    </endAnalytics>

    <visitEnd>
      <processor type="Sitecore.Analytics.Pipelines.VisitEnd.RunRules,Sitecore.Analytics"/>
      <processor type="Sitecore.Analytics.Pipelines.VisitEnd.RunAutomation,Sitecore.Automation.MarketingAutomation"/>
    </visitEnd>

    <httpRequestEnd>
      <processor type="Sitecore.Analytics.Pipelines.HttpRequest.EndAnalytics,Sitecore.Analytics" patch:before="processor[@type='Sitecore.Pipelines.PreprocessRequest.CheckIgnoreFlag, Sitecore.Kernel']"/>
    </httpRequestEnd>
  4. In the <pipelines> section, the <sessionEnd> pipeline has been changed. Two of the existing processors "RunRules" and "RunAutomation" has been removed and a new processor named "RaiseVisitEnd" has been added, so that the <sessionEnd> pipeline now looks like this:
    <sessionEnd>
      <processor type="Sitecore.Analytics.Pipelines.SessionEnd.RaiseVisitEnd,Sitecore.Analytics"/>
      <processor type="Sitecore.Analytics.Pipelines.SessionEnd.AcceptChanges,Sitecore.Analytics"/>
    </sessionEnd>
  5. In the <pipelines> section, three new processors "RaiseStartTracking", "UpdateGeoIpData" and "TrackerInitialized" have been added to the <startTracking> pipeline, so that the pipeline now looks like this:
    <startTracking>
      <processor type="Sitecore.Analytics.Pipelines.StartTracking.RaiseStartTracking,Sitecore.Analytics" />
      <processor type="Sitecore.Analytics.Pipelines.StartTracking.InitializeTracker,Sitecore.Analytics" />
      <processor type="Sitecore.Analytics.Pipelines.StartTracking.UpdateGeoIpData,Sitecore.Analytics" />
      <processor type="Sitecore.Analytics.Pipelines.StartTracking.TrackerInitialized,Sitecore.Analytics" />
      <processor type="Sitecore.Analytics.Pipelines.StartTracking.ProcessQueryString,Sitecore.Analytics">
        <triggers hint="raw:AddTrigger">
          <trigger querystring="sc_rss" eventname="RSS"/>
        </triggers>
      </processor>
      <processor type="Sitecore.Analytics.Pipelines.StartTracking.ProcessItem,Sitecore.Analytics"/>
    </startTracking>
  6. In the <pipelines> section, a new "CommitAutomations" processor has been added to the <commitDataSet> pipeline, so that the pipeline now looks like this:
    <commitDataSet>
      <processor type="Sitecore.Analytics.Pipelines.CommitDataSet.CommitAutomations, Sitecore.Automation.MarketingAutomation"/>
      <processor type="Sitecore.Analytics.Pipelines.CommitDataSet.CommitAnalytics,Sitecore.Analytics"/>
    </commitDataSet>

Changes to the /sitecore_files/Web.config file

The following steps are related to issues merged from 6.4.1 Update-6, so you do not need to make these changes if your solution was upgraded to CMS 6.5 from 6.4.1 Update-6 or later.

The following changes have been made to the /sitecore_files/Web.config file of Sitecore CMS 6.5.0 rev. 120427 (Update-4) as compared to the /sitecore_files/Web.config file of Sitecore CMS 6.5.0 rev. 111230 (Update-3):

  1. Add the following node to the <system.webServer> section:
    <modules>
      <remove name="SitecoreRewriteModule"/>
    </modules>
  2. Add the following node to the <configuration> section:
    <system.web>
      <httpModules>
        <remove name="SitecoreRewriteModule"/>
      </httpModules>
    </system.web>