+1-888-365-2779
Try Now
More in this section

Forums / General Discussions / Upgrade Version Hell

Upgrade Version Hell

18 posts, 0 answered
  1. SteveV
    SteveV avatar
    178 posts
    Registered:
    06 Nov 2011
    23 May 2013
    Link to this post
    I currently have a SF 5.1 site.  Everything has been running reasonably well and I've been putting off upgrades using the "if it ain't broke..." philosophy.  Now I'm looking at upgrading to 6.0 sp1.  The upgrade docs indicate I must upgrade from 5.1>5.2, 5.2>5.4, and finally 5.4>6.0 sp1.

    SF if the only product I use that requires this level of version-by-version upgrade procedure.  Upgrading from one version is already a painfully time consuming process.  Having to perform 3 upgrades to get to the most recent version is crazy.  The upgrade->test->deploy process usually sucks up the better part of a day.  Having to do it multiple times just plain sucks. 

    Is there any plan in the works to make upgrades a more reasonable process?

    Steve
  2. gregory hernandez
    gregory hernandez avatar
    59 posts
    Registered:
    10 Jul 2009
    23 May 2013 in reply to SteveV
    Link to this post
    +1 SteveV, several of us feel you. See here:
    http://www.sitefinity.com/developer-network/forums/general-discussions-/start-fresh-with-sf-5-4-but-bring-published-content-from-sf-5-1-w-o-upgrading-

    The Sitefinity team may be looking at this, at least I hope.

    Gregory

  3. SteveV
    SteveV avatar
    178 posts
    Registered:
    06 Nov 2011
    24 May 2013 in reply to gregory hernandez
    Link to this post
    Hi Gregory,

    This is a good start and I added my vote in PITS but it really doesn't address the required incremental upgrades issue.  Imagine if Microsoft did this with their operating systems--most of us would still be running Windows 95 (or gasp 3.1).  Frankly, I can't imagine that this helps Telerik's business.  If I were running 4.X and was considering purchasing an upgrade only to find out the crazy number of incremental upgrades I had to do to get to 6.X, I might very well look at another product--certainly not in Telerik's interest to have customer doing that.

    Steve
  4. Steve
    Steve avatar
    3037 posts
    Registered:
    03 Dec 2008
    24 May 2013 in reply to SteveV
    Link to this post
    It's not that big of a deal, and certainly way easier than a 3.x upgrade.  Imagine if instead of a bin file to update you had to windiff individual files on the entire webroot (yeah, that was the 3.x upgrade process).

    It should just be as easy as:
    1) Drop in Bin\ClientBin\Sitefinity folders
    2) Build, run
    3) Drop in Bin\ClientBin\Sitefinity folders
    4) Build, run
    ...
    5) Use the latest _EmptyProject Webconfig
    6) Validate

    I can do 5+ sites in a couple hours, I rarely encounter issues after an upgrade certainly nothing where I don't feel like I can just do it on a whim quickly.

    If you have to go the latest anyway, why bother validating after EVERY upgrade...what if you encounter a bug which is fixed a couple versions later

    Also that's the *safe cover our asses* upgrade path...if you do a backup you can likely just skip multiple versions (like 5.1-6.0)
  5. gregory hernandez
    gregory hernandez avatar
    59 posts
    Registered:
    10 Jul 2009
    24 May 2013 in reply to Steve
    Link to this post
    Steve, what do you mean by this line: Also that's the *safe cover our asses* upgrade path...if you do a backup you can likely just skip multiple versions (like 5.1-6.0)?

    My site is at 5.1 right now. Are you saying there's a way for me to go straight to 6.0 SP1 w/o the upgrades in between? If so, would you please share that pearl of wisdom?

    Many thanks in advance,
    Gregory
  6. SteveV
    SteveV avatar
    178 posts
    Registered:
    06 Nov 2011
    24 May 2013 in reply to Steve
    Link to this post
    Maybe I'm doing it wrong.  I generally do the upgrades on my development machine, build, run, fix any problems, test, and deploy all of the files except the config files to my live server.

    Next, I log into the live site's SF backend which triggers the database upgrade for that version.  Next, I confirm everyting works as expected and repeat the process for each upgrade. 

    If there's a simpler method I'd love to hear about it.
  7. SteveV
    SteveV avatar
    178 posts
    Registered:
    06 Nov 2011
    24 May 2013 in reply to SteveV
    Link to this post
    Just upgraded from 5.1 to 5.2. Now I get this compilation error:

    Error   63  Could not load file or assembly 'Telerik.OpenAccess.35.Extensions, Version=2012.2.628.2, Culture=neutral, PublicKeyToken=7ce17eeaf1d59342' or one of its dependencies. General Exception (Exception from HRESULT: 0x80131500)
    ExceptionString:
    System.IO.FileLoadException: Could not load file or assembly 'Telerik.OpenAccess.35.Extensions, Version=2012.2.628.2, Culture=neutral, PublicKeyToken=7ce17eeaf1d59342' or one of its dependencies. General Exception (Exception from HRESULT: 0x80131500)
    File name: 'Telerik.OpenAccess.35.Extensions, Version=2012.2.628.2, Culture=neutral, PublicKeyToken=7ce17eeaf1d59342' ---> System.Exception: The referenced assembly 'C:\Program Files (x86)\Telerik\Sitefinity 4.3\Projects\NLG Sitefinity Site\NLG Sitefinity Site\bin\Telerik.OpenAccess.35.Extensions.dll' has the wrong version; expected Version=2012.2.628.2 but found Version=2012.3.1012.1.
       at Telerik.OpenAccess.SPI.AssemblyProvider.LoadFromReferences(String assemblyName)
       at Telerik.OpenAccess.SPI.AssemblyProvider.RefResolveEventHandler(Object sender, ResolveEventArgs args)
       at System.AppDomain.OnAssemblyResolveEvent(RuntimeAssembly assembly, String assemblyFullName)
       at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, Boolean loadTypeFromPartialName, ObjectHandleOnStack type)
       at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, Boolean loadTypeFromPartialName)
       at System.RuntimeType.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark)
       at System.Type.GetType(String typeName)
       at Telerik.OpenAccess.Sdk.Enhancer.Enhancer.CrossDomainRunImpl(AssemblyLoader assemblyLoader)
       at Telerik.OpenAccess.Sdk.Enhancer.EnhancerBase.CrossDomainRun()
     
        C:\Program Files (x86)\Telerik\Sitefinity 4.3\Projects\NLG Sitefinity Site\NLG Sitefinity Site\obj\Debug\SitefinityWebApp.dll   NLGSitefinityWebApp


    This has bitten me several times.  In this post http://www.sitefinity.com/developer-network/forums/developing-with-sitefinity-/using-open-access-in-sitefintiy-when-i-have-the-full-product-installed#Cda-rQI4v0CrezWfIcUysA  Josh Morales provides a workaround via a link to his  web site. The workaround requires downloading a version of the OpenAccess SDK that matches the version the SF project is looking for.  The problem?  Telerik no longer offers the older versions for Download.  This is what makes "upgrades" such a joy.  I have yet to complete one without some kind of problem that results in a multi-hour fix hunt.



  8. Boyan Barnev
    Boyan Barnev avatar
    1429 posts
    Registered:
    02 Dec 2016
    28 May 2013
    Link to this post
    Hello Steve,

    Please note that the received exception indicates that the current version of Telerik OpenAccess that your Sitefinity project references does not match the one that the Sitefinity assemblies have been built with. Alternatively if you have a custom module that has a persistent model and needs to be enhanced, it could be that the OpenAccess version your targets file points to is also different than the one the current Sitefinity assemblies have been built with.

    Each Sitefinity project manager creates an _EmptyProject folder, which contains the defualt project files for a Sitefintiy project of that version. In the /bin folder inside this _EmptyProject folder you can find the Telerik OpenAccess assemblies which are used by the corresponding Sitefinity version, and can reference them in your current project, as this way you're ensuring that the proper version fof these assmeblies ar eused by your project (instead of referencing them from GAC, fro example, which will pull the currently installed OpenAccess version on the machine).

    If you have a custom module that has a persistent model and needs to be enhanced, you need to change the location of the targets file as well. To obtain the correct targets and enhancer for the particular Sitefinity  version, you can download the Sitefinity SDK for that version. You can find all available SDK version in your account here.

    Regards,
    Boyan Barnev
    Telerik
    Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
  9. SteveV
    SteveV avatar
    178 posts
    Registered:
    06 Nov 2011
    28 May 2013 in reply to Boyan Barnev
    Link to this post
    Hi Boyan,

    I do have a number of custom modules that use persistance but they are all part of the main project.  I don't have any modules in seperate assemblies so all of the modules are using the same OpenAccess references.  I had already downloaded the SF 5.2 SDK before I posted.  My project file is using the following path for the OpenAccess.targets:
    <Import Condition="Exists('$(MSBuildExtensionsPath)\OpenAccess.targets')" Project="$(MSBuildExtensionsPath)\OpenAccess.targets" />

    which in turn expands to: C:\Program Files (x86)\MSBuild\OpenAccess.targets

    The OpenAccess.targets file defines the following "OpenAccessPath":
    <OpenAccessPath Condition="'$(OpenAccessPath)'==''">C:\Program Files (x86)\Telerik\OpenAccess ORM\</OpenAccessPath>

    which points to the OpenAccess product install.  Since I can't install an older version, the assemblies don't match what SF is expecting.  Am I missing something here?

    Thanks -- Steve





  10. SteveV
    SteveV avatar
    178 posts
    Registered:
    06 Nov 2011
    28 May 2013 in reply to SteveV
    Link to this post
    I got it to work by screwing with the "OpenAccessPath" and "EnhancerAssembly" values in the OpenAccess.targets file.  Original values were:
    <OpenAccessPath Condition="'$(OpenAccessPath)'==''">C:\Program Files (x86)\Telerik\OpenAccess ORM\</OpenAccessPath>
    <EnhancerAssembly Condition="'$(EnhancerAssembly)'==''">$(OpenAccessPath)\sdk\enhancer.exe</EnhancerAssembly>

    New values are:
    <OpenAccessPath Condition="'$(OpenAccessPath)'==''">C:\Program Files (x86)\Telerik\Sitefinity 5.2\SDK\Content\Common\Dependencies\</OpenAccessPath>
    <EnhancerAssembly Condition="'$(EnhancerAssembly)'==''">$(OpenAccessPath)\sdk\enhancer.exe</EnhancerAssembly>

    Now I can compile and run but the Ecommerce module is missing from the backend.  Looking at the "Administration>Modules" backend page, there's a red exclamation icon on the ecommerce module and "Failed Details" link shows the following error detail:
    Insert of '1567185022-d9b4ccf1-aaf7-402f-8572-ce6a90721eb4' failed: Telerik.OpenAccess.RT.sql.SQLException: Cannot insert the value NULL into column 'temp_column_a', table 'NLGSitefinity.dbo.sf_permissions'; column does not allow nulls. INSERT fails. The statement has been terminated. at Telerik.OpenAccess.RT.Adonet2Generic.Impl.PreparedStatementImp.execute() at OpenAccessRuntime.Relational.conn.PooledPreparedStatement.execute() at OpenAccessRuntime.Relational.RelationalStorageManager.generateInserts(NewObjectOID oid, Int32 index, ClassMetaData cmd, PersistGraph graph, Int32[] fieldNos, CharBuf s, Object[] oidData, IntArray toUpdateIndexes) INSERT INTO [sf_permissions] ([id], [app_name], [deny], [grnt], [last_modified], [object_id], [principal_id], [set_name], [voa_version]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) (set event logging to all to see parameter values) Telerik.OpenAccess.RT.sql.SQLException: Cannot insert the value NULL into column 'temp_column_a', table 'NLGSitefinity.dbo.sf_permissions'; column does not allow nulls. INSERT fails. The statement has been terminated. at Telerik.OpenAccess.RT.Adonet2Generic.Impl.PreparedStatementImp.execute() at OpenAccessRuntime.Relational.conn.PooledPreparedStatement.execute() at OpenAccessRuntime.Relational.RelationalStorageManager.generateInserts(NewObjectOID oid, Int32 index, ClassMetaData cmd, PersistGraph graph, Int32[] fieldNos, CharBuf s, Object[] oidData, IntArray toUpdateIndexes)

    Any thoughts?

    Thanks--Steve



  11. Boyan Barnev
    Boyan Barnev avatar
    1429 posts
    Registered:
    02 Dec 2016
    31 May 2013
    Link to this post
    Hello Steve,

    I'm glad to hear that the provided information has pointed you in the right direction for resolving the problem.

    The current issue you're experiencing indicates a possible failed upgrade script, wehre the temporary column has nod been dropped during the execution of the upgrade scripts. The most probable cause for the failed upgrade script is the exception that has occurred during the upgrade (due to the incorrect OA version). Our best practices recommendation would be to attempt at goign through the upgrade process again, but this time, please configure the project to point to the correct version fo telerik.OpenAccess prior to starting the web site after the upgrade,  and let us know if any issues persist.

    Regards,
    Boyan Barnev
    Telerik
    Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
  12. SteveV
    SteveV avatar
    178 posts
    Registered:
    06 Nov 2011
    01 Jun 2013 in reply to Boyan Barnev
    Link to this post
    Unfortunately, I continue to encounter one problem after another and a full week after starting the 5.1>5.2 upgrade I still don't have 5.2 working on my dev system.

    After sorting out the erroneous database table column issue I discovered that my 5.2 license was missing the Ecommerce module.  After, two emails to sales@sitefinity.com in two days, both of which went unanswered, my support ticket was updated indicating that the license was updated.  Two full days lost due to a stupid oversight on someone's part while entering my license info. 

    With the license issue resolved, I set out to test the site on my local machine before publishing the changes to my production server.  Five minutes later I was already dead in the water: Adding an item to the shopping cart results in a div message with the following:
    This item cannot be added to your shopping cart at this time.

    I've tried dozens of items all with the same result.  I can edit and save the product in the backend so there doesn't seem to be an issue with the product itself. I've tried recycling the app pool, restarting the web server all without change.

    Looking at the error log I see one error:
    ----------------------------------------
    Timestamp: 5/31/2013 8:02:09 PM
     
    Message: HandlingInstanceID: 6fe85e4c-3d38-45b1-927a-cd623c53d628
    An exception of type 'System.ArgumentException' occurred and was caught.
    ------------------------------------------------------------------------
    05/31/2013 16:02:09
    Type : System.ArgumentException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    Message : Invalid type specified Telerik.Sitefinity.Modules.Ecommerce.Catalog.CatalogDataProviderBase
    Source : Telerik.Sitefinity
    Help link :
    ParamName :
    Data : System.Collections.ListDictionaryInternal
    TargetSite : TProviderBase InstantiateProvider(Telerik.Sitefinity.Configuration.IDataProviderSettings, System.Type, Telerik.Sitefinity.Abstractions.ExceptionPolicyName, Telerik.Sitefinity.Data.ManagerBase`1[TProviderBase])
    Stack Trace :    at Telerik.Sitefinity.Data.ManagerBase`1.InstantiateProvider(IDataProviderSettings providerSettings, Type providerType, ExceptionPolicyName policy, ManagerBase`1 manager)
     
    Additional Info:
     
    MachineName : STEVE4
    TimeStamp : 5/31/2013 8:02:09 PM
    FullName : Telerik.Sitefinity.Utilities, Version=5.2.3800.0, Culture=neutral, PublicKeyToken=b28c218413bdf563
    AppDomainName : /LM/W3SVC/1/ROOT/NLGSitefinityWebApp-1-130145041017573328
    ThreadIdentity : svibert
    WindowsIdentity : IIS APPPOOL\NLGSiteFinity
     
     
    Category: ErrorLog
     
    Priority: 0
     
    EventId: 9010
     
    Severity: Warning
     
    Title:Enterprise Library Exception Handling
     
    Machine: STEVE4
     
    App Domain: /LM/W3SVC/1/ROOT/NLGSitefinityWebApp-1-130145041017573328
     
    ProcessId: 9136
     
    Process Name: c:\windows\system32\inetsrv\w3wp.exe
     
    Thread Name:
     
    Win32 ThreadId:6984
     
    Extended Properties:
    ----------------------------------------

    The error only occurs on the first add to cart after restarting the web site.  Subsequent attempts to add items to the cart do not result in an error entry in the log.

    Support has been helpful but even though I have the "Standard Priority Support" option with 24 hr M-F response time, each ticket update takes a full 24 hours.  So 5 replies from support takes 5 days.  I have yet to see multiple replies in one day.  At this rate, it may be days or weeks before I get this going.  Overall a painfully frustrating process and experience.
  13. Patrick Dunn
    Patrick Dunn avatar
    237 posts
    Registered:
    03 Nov 2014
    05 Jun 2013
    Link to this post
    Hi Steve,

    I hope you are doing well today.

    We would need a copy of your project to investigate. Can you please open a support ticket and submit your project to us?

    Thank you.

    Regards,
    Patrick Dunn
    Telerik
    Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
  14. SteveV
    SteveV avatar
    178 posts
    Registered:
    06 Nov 2011
    05 Jun 2013 in reply to Patrick Dunn
    Link to this post
    Hi Patrick,

    Thanks for the reply.  I already have a ticket open and uploaded my project and database on Monday morning.  I received a reply this morning from tech support indicating that there was a column named "title" (not to be confused with "title_") in the sf_ec_cart_detail table that shouldn't be there and should be deleted.  
    I deleted the column and that did solve the  "This item cannot be added to your shopping cart at this time." problem. But now I get the following error when I begin checkout:
    Server Error in '/NLGSitefinityWebApp' Application.
    --------------------------------------------------------------------------------
     
    A required control was not found in the template for "~/SfCtrlPresentation/OpenAccessDataProvider,71cc734324a940e586291c2cec50e9ca.ascx". The control must be assignable from type "System.Web.UI.ITextControl" and must have ID "stateProvinceData".
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
     
    Exception Details: Telerik.Sitefinity.Web.UI.TemplateException: A required control was not found in the template for "~/SfCtrlPresentation/OpenAccessDataProvider,71cc734324a940e586291c2cec50e9ca.ascx". The control must be assignable from type "System.Web.UI.ITextControl" and must have ID "stateProvinceData".
     
    Source Error:
     
    An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. 
     
    Stack Trace:
     
     
    [TemplateException: A required control was not found in the template for "~/SfCtrlPresentation/OpenAccessDataProvider,71cc734324a940e586291c2cec50e9ca.ascx". The control must be assignable from type "System.Web.UI.ITextControl" and must have ID "stateProvinceData".]
       Telerik.Sitefinity.Web.UI.GenericContainer.ThrowException(Type requiredType, String controlId) +74
       Telerik.Sitefinity.Web.UI.GenericContainer.GetControl(String id, Boolean required) +262
       Telerik.Sitefinity.Modules.Ecommerce.Orders.Web.UI.CheckoutViews.ShippingAndBillingInformation.InitializeControls(GenericContainer container) +680
       Telerik.Sitefinity.Web.UI.SimpleView.CreateChildControls() +82
       System.Web.UI.Control.EnsureChildControls() +182
       System.Web.UI.Control.PreRenderRecursiveInternal() +60
       System.Web.UI.Control.PreRenderRecursiveInternal() +222
       System.Web.UI.Control.PreRenderRecursiveInternal() +222
       System.Web.UI.Control.PreRenderRecursiveInternal() +222
       System.Web.UI.Control.PreRenderRecursiveInternal() +222
       System.Web.UI.Control.PreRenderRecursiveInternal() +222
       System.Web.UI.Control.PreRenderRecursiveInternal() +222
       System.Web.UI.Control.PreRenderRecursiveInternal() +222
       System.Web.UI.Control.PreRenderRecursiveInternal() +222
       System.Web.UI.Control.PreRenderRecursiveInternal() +222
       System.Web.UI.Control.PreRenderRecursiveInternal() +222
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4201
     
      
     
     
    --------------------------------------------------------------------------------
    Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.551


    The fact that (so far) there have been 2 tables with "extra" columns after the upgrade process doesn't make me feel all that confident that this will be the end of it.  Makes me wonder how many more problems I (or my visitors) will stumble across as other functionality is accessed. 

    Steve

  15. Patrick Dunn
    Patrick Dunn avatar
    237 posts
    Registered:
    03 Nov 2014
    06 Jun 2013
    Link to this post
    Hello Steve,

     It seems like something may have gone wrong during the upgrade process for the database. Considering how many changes were made to the database in 6.0 for ecommerce it seems fair to reason that this would be the cause. As for resolving the issues we have to approach them 1 by 1 but a best solution - if possible - would be to try the upgrade process again and confirm that the tables were updated correctly.

    With ecommerce having so many changes made it is also important to read over the breaking changes.

    http://www.sitefinity.com/documentation/documentationarticles/developers-guide/changes-and-backward-compatibility/breaking-changes-in-sitefinity-6-0/sitefinity-6-0-ecommerce-breaking-changes

    The error you receive now is because a portion of your checkout control does not have "stateProvinceData" control ID. It is required. You can download all of the 6.0 templates in the SDK and then use them in your site as they will have all the required controls. This error will specifically show up if you are using an external template and have not updated it with the latest control requirements.

    Regards,
    Patrick Dunn
    Telerik
    Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
  16. SteveV
    SteveV avatar
    178 posts
    Registered:
    06 Nov 2011
    06 Jun 2013 in reply to Patrick Dunn
    Link to this post
    Hi Patrick,

    Note that I'm currently upgrading to 5.2 in hopes that I might someday make enough progress to actually get to version 6.0.  I am in fact using a custom template but you should note that there is no mention of changes to ecommerce templates in the 5.2 breaking changes document.

    Regards -- Steve
  17. Patrick Dunn
    Patrick Dunn avatar
    237 posts
    Registered:
    03 Nov 2014
    07 Jun 2013
    Link to this post
    Hi Steve,

     The template that needs this control is the ShippingAndBillingInformation step of the checkout control. Please check your template and ensure that this control is there somewhere:

    <asp:Label ID="stateProvinceData" CssClass="sfstateProvinceData" style="display:none;" runat="server" />

    Thank you.

    Regards,
    Patrick Dunn
    Telerik
    Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
  18. SteveV
    SteveV avatar
    178 posts
    Registered:
    06 Nov 2011
    07 Jun 2013 in reply to Patrick Dunn
    Link to this post
    Hi Patrick,

    That did it--thanks.

    Steve
18 posts, 0 answered