Upgrade Instructions

Home >  My Client.net >  Upgrade Instructions

The patch is provided to upgrade projects created with Sitefinity version 3.0 or later.

In order to apply the patch, please follow these instructions:

1. BACK UP the project! It is extremely important that a backup is done of both the files and the database before installing anything new. This ensures that whenever anything goes wrong, no information is lost.

2. UNZIP the patch archive in a temporary folder! Then copy all the unzipped folders and files in the project folder. If you unzip directly in the project folder, you will have to replace all permissions as the new files do not inherit the project's permissions.

3. IMPORTANT. You need to check that changes you made to some of the project files are not replaced during the upgrade. We recommend going over the modified files (usually teamplates) and changing their names to differ from the originals.

4. Compare your original project web.config file to the new_web.config file from the archive. Change your original web.config to reflect the changes introduced in the latest Sitefinity version. You can use any comparison tool you like.

Here are the changes to the web.config since the last Sitefinity version:

<configuration> 
  <configSections> 
    <sectionGroup name="telerik"
      <!--  Added new section for Spam Protector--> 
      <section name="spamProtector" type="Telerik.Cms.Engine.SpamProtector.Configuration.SpamProtectorSection, Telerik.Cms.Engine"/> 
       
      <!--  Added new section for Performance counter --> 
      <section name="performanceCounter" type="Telerik.Framework.Utilities.HealthMonitoring.Configuration.CountersSection, Telerik.Framework" /> 
     
    </sectionGroup> 
  </configSections> 
  <system.web> 
    <httpHandlers> 
       
      <!-- Added new extensions for RSS and Images&Libraries content handlers.  
           They does not require additional mapping in the IIS.  
           You don't need to add them if you already have the script mappings in the IIS --> 
      <add verb="*" path="*.rss.ashx" type="Telerik.Rss.RssHttpHandler, Telerik.Rss"/> 
      <add verb="GET" path="*.sflb.ashx" type="Telerik.Cms.Engine.ContentHttpHandler, Telerik.Cms.Engine"/> 
      <add verb="GET" path="*.tmb.ashx" type="Telerik.Cms.Engine.ContentHttpHandler, Telerik.Cms.Engine"/> 
       
    </httpHandlers> 
  </system.web> 
  <system.webServer> 
    <handlers> 
       
      <!-- Added new extensions for RSS and Images&Libraries content handlers. --> 
      <add name="SitefinityThumbnailAdd" path="*.tmb.ashx" verb="*" preCondition="integratedMode" type="Telerik.Cms.Engine.ContentHttpHandler, Telerik.Cms.Engine"/> 
      <add name="SitefinityLibraryAdd" path="*.sflb.ashx" verb="*" preCondition="integratedMode" type="Telerik.Cms.Engine.ContentHttpHandler, Telerik.Cms.Engine"/> 
      <add name="SitefinityRSSAdd" preCondition="integratedMode" verb="*" path="*.rss.ashx" type="Telerik.Rss.RssHttpHandler, Telerik.Rss"/> 
       
    </handlers> 
  </system.webServer> 
  <telerik> 
    <dataAccess> 
       
      <!-- Obsolete. This setting is moved to the /telerik/framework/caching section element --> 
      <cacheDependency mode="InMemory"/> 
       
    </dataAccess> 
    <framework> 
       
      <!-- Added new section element for caching configuration --> 
      <caching defaultProvider="memoryCache"
        <providers> 
          <add name="memoryCache" type="Telerik.Caching.MemoryCachingProvider, Telerik.Framework" /> 
        </providers> 
        <cacheDependency mode="InMemory"/> 
      </caching> 
       
    </framework> 
    <search> 
       
      <!--Added new element in telerik\search, allowing server-side validation for the search box user input --> 
      <searchInputValidation> 
        <add matchPattern="\A[\*\?\~][^\s]*" replacementString="" enabled="true" matchAlert="You can not start your query using wildcards, modify your query and try again.."/> 
        <add matchPattern="[\!\^\(\)\{\}\[\]]" replacementString="" enabled="true" matchAlert="Strange characters should be enclosed between double quotation, modify your query and try again.." /> 
      </searchInputValidation> 
     
    </search> 
    <cms> 
      <toolboxControls> 
         
        <!-- Site Navigation controls are modified to use Ajax ASP.NET RadControls --> 
        <add name="Site Menu" section="Navigation" url="~/Sitefinity/UserControls/Navigation35/SiteMenu.ascx"/> 
        <add name="Site Panelbar" section="Navigation" url="~/Sitefinity/UserControls/Navigation35/SitePanelbar.ascx"/> 
        <add name="Site Tabstrip" section="Navigation" url="~/Sitefinity/UserControls/Navigation35/SiteTabstrip.ascx"/> 
        <add name="Site Treeview" section="Navigation" url="~/Sitefinity/UserControls/Navigation35/SiteTreeview.ascx"/> 
        <add name="RadTabStrip" section="RadControls" type="Telerik.Web.UI.RadTabStrip, Telerik.Web.UI"/> 
        <add name="RadMenu" section="RadControls" type="Telerik.Web.UI.RadMenu, Telerik.Web.UI"/> 
        <add name="RadPanelBar" section="RadControls" type="Telerik.Web.UI.RadPanelBar, Telerik.Web.UI"/> 
 
      </toolboxControls> 
    </cms> 
    <cmsEngine> 
      <providers> 
         
        <!-- urlRewriteFormat value is changed to use .sflb.ashx extension instead of .sflb. Optional --> 
        <add name="Libraries" urlRewriteFormat="~/{Provider}/{LibraryName}/[Name].sflb.ashx" urlDateTimeFormat="yy-MM-dd" urlWhitespaceChar="_" visible="False" defaultMetaField="Name" applicationName="/Libraries" allowVersioning="False" allowLocalization="False" localizationProviderName="" allowWorkflow="False" securityProviderName="" versioningProviderName="" connectionStringName="GenericContentConnection" type="Telerik.Libraries.Data.DefaultProvider, Telerik.Libraries.Data" tagEditorTemplate="~/Sitefinity/Admin/ControlTemplates/Libraries/BatchTagsEditor.ascx"/> 
         
      </providers> 
      <metaFields> 
         
        <!-- Added new metaField View_Count. Optional --> 
        <add key="Blogs.View_Count" valueType="Integer" visible="True" searchable="True" sortable="True" defaultValue="0" /> 
         
      </metaFields> 
       
      <!-- Added new section element collection Generic Content setting services to be initialized --> 
      <contentViewSettings> 
        <add type="Telerik.Cms.Engine.WebControls.Design.Settings.TextSettingService" /> 
        <add type="Telerik.Cms.Engine.WebControls.Design.Settings.ContentSettingService" /> 
      </contentViewSettings> 
       
    </cmsEngine> 
    <blogs defaultGenericProvider="Blogs"
      <genericContentProviders> 
         
        <!-- Added new attribute flatOwnership --> 
        <add providerName="Blogs" publicationDateField="Publication_Date" urlRewriteFormat="[Publication_Date]/[Title].aspx" urlDateTimeFormat="yy-MM-dd" urlWhitespaceChar="_" flatOwnership="True" /> 
         
      </genericContentProviders> 
    </blogs> 
     
    <!-- Added Spam Protector section configuration --> 
    <spamProtector defaultProvider="akismet" disabled="true"
      <providers> 
        <add name="akismet" 
             type="Telerik.Cms.Engine.SpamProtector.AkismetProvider" 
             key="c0e8868fd509" 
             siteUrl="http://www.telerik.com/" /> 
      </providers> 
    </spamProtector> 
 
    <!-- Added Performance counter section configuration --> 
    <performanceCounter category="Sitefinity CMS" description="Sitefinity performance statistics" disabled="true"
      <counters> 
        <add name="DAL Operations/Sec" description="The number database calls made per second." type="RateOfCountsPerSecond32" /> 
        <add name="Error Raised" description="Number of times excpetion has been thrown running the app" type="NumberOfItems32" /> 
        <add name="CMS Page Average Execution Time" description="The average time consumed to serve Sitefinity pages measured in milliseconds." type="AverageTimer32" /> 
        <add name="CMS Content Average Execution Time" description="The average time consumed to serve Sitefinity Content measured in milliseconds." type="AverageTimer32" /> 
        <add name="Average Operation Execution Time" description="The average time to execute an operaion (CRUD) measured in milliseconds." type="AverageTimer32" /> 
      </counters> 
    </performanceCounter> 
 
  </telerik> 
</configuration> 

5. Once done with the upgrade, you need to start the Search Indexes. Otherwise, you will get error messages if you try to publish content.  To start the Search Indexes, go to the administration area, Administration tab, section Services -> Search and start all indexes by clicking on the Start indexing links.

6. Open the folder ~/Sitefinity/ServiceAssemblies and make sure you delete the assembly there. When you initialize the Newsletters module, it will be recreated. If you don't do this before you apply the patch, you'll get the following error:
"Unable to load one or more of the requested types. Retrieve the LoaderExceptionsProperty for more information."