Sitefinity 在部署到生产服务器后开始升级

Sitefinity starts upgrade after deploying to production server

我们正在将现有的 Sitefinity 10.x 网站迁移到新的托管服务提供商,但 运行 遇到了一系列问题。

首先,我们将站点从当前主机备份并恢复到我们的本地开发环境,并在大约 10 分钟内启动并 运行 - 没有问题。

我们再次备份所有内容,然后按照以下说明在共享托管环境中部署到新的托管服务提供商:https://www.progress.com/documentation/sitefinity-cms/deploy-projects-to-shared-hosting

结果是 Sitefinity 似乎以某种方式认为它需要 install/upgrade 并最终陷入抛出异常的循环,在 App_Data 的日志目录中创建非常大的文件,包括错误和大小在 6 到 20Mb 之间的 UpgradeTrace 日志文件。

我在这里错过了什么?这通常很容易做到。

这是系统初始化过程输出的一小部分示例。

    HandlingInstanceID: a7548528-e50b-4c45-ac31-14997da528e2 An exception of type 'System.Exception' occurred and was caught.   
            ----------------------------------------------------------------   
            11/05/2020 08:30:45 Type : System.Exception, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Message :   
            FAILED : SiteInitializer : Upgrade to 1106 (Upgrade backend pages accessible to all in Backend role) -   
Exception has been thrown by the target of an invocation.   
Source :   
Help link :   
Data : System.Collections.ListDictionaryInternal   
            TargetSite : HResult : -2146233088 Stack Trace : The stack trace is unavailable.   
Additional Info:   
MachineName : --hidden-- TimeStamp : 2020/11/05 6:30:45 AM   
FullName : Telerik.Sitefinity.Utilities, Version=10.0.6400.0, Culture=neutral, PublicKeyToken=b28c218413bdf563   
AppDomainName : /LM/W3SVC/556/ROOT-1-132490314385720168   
ThreadIdentity : Anonymous WindowsIdentity : --hidden\hidden--   
Requested URL : http://127.0.0.1/   
    
    Inner Exception --------------- 
      Type :  System.Reflection.TargetInvocationException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089   
      Message : Exception has been thrown by the target of an invocation.  
      Source : mscorlib Help link :   
      Data : System.Collections.ListDictionaryInternal  
      TargetSite : System.Object InvokeMethod(System.Object, System.Object[], System.Signature, Boolean)  
      HResult : -2146232828    
      Stack Trace :  
        at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)   
        at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)   
        at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Telerik.Sitefinity.Abstractions.UpgradeMethod.Execute(Object upgradeContext)   
        at Telerik.Sitefinity.Abstractions.SiteInitializer.Upgrade[TUpgradeInfoAttribute](Object instance, Int32 upgradeFrom, Object upgradeContext)   
    Inner Exception --------------- Type :    
    Telerik.Sitefinity.SitefinityExceptions.ItemNotFoundException, Telerik.Sitefinity, Version=10.0.6400.0, Culture=neutral, PublicKeyToken=b28c218413bdf563 Message :   
            
            You are trying to access item that no longer exists. The most probable reason is that it has been deleted by another user.   
            
            Source : Unity_ILEmit_DynamicClasses Help link : Data : System.Collections.ListDictionaryInternal  
            TargetSite : Telerik.Sitefinity.Pages.Model.PageNode GetPageNode(System.Guid) HResult : -2146233088 Stack Trace :   
    at DynamicModule.ns.Wrapped_OpenAccessPageProvider_325400689b95401abccc69f6d0957c5f.GetPageNode(Guid id)   
    at Telerik.Sitefinity.Modules.Pages.PageManager.GetPageNode(Guid id)   
    at Telerik.Sitefinity.Abstractions.SiteInitializer.UpgradeTo1106()
                Expand  08:57:24
                FAILED : SiteInitializer : Upgrade to 1106 (Upgrade backend pages accessible to all in Backend role) - Exception has been thrown by the target of an invocation.
                08:57:24
                Upgrading Progress Sitefinity CMS from build version 1 to 6400.
                08:57:24
                System is initializing...
                08:57:24

其实很简单

  1. 我将 <clear /> 添加到数据配置文件以删除 machine.config 的数据库配置。这是我意识到的地方 数据库还原出了点问题。
  2. 在托管服务提供商网站上使用 SolidCP 我认为数据库恢复 成功了,结果却悄无声息地失败了
  3. ISP 进行了成功的手动恢复
  4. 最后我们将 <clear /> 添加到 SiteMapProvider 设置中,因为 ISP 还安装了 MySql 提供程序,如果您不清除 machine.config 的配置,这会导致 Sitefinity 出现问题站点地图。

在那之后一切都按预期进行。