问题描述
我们正在将现有的Sitefinity 10.x网站迁移到新的托管服务提供商的过程中,但遇到了一系列问题。
首先,我们将站点从当前主机备份并还原到我们的本地开发环境,并在大约10分钟内启动并运行-没问题。
我们再次备份所有内容,然后按照以下说明在共享托管环境中部署到新的托管服务提供商:https://www.progress.com/documentation/sitefinity-cms/deploy-projects-to-shared-hosting
结果是Sitefinity似乎以某种方式认为它需要安装/升级,并最终导致抛出异常循环,从而在App_Data的Logs目录中创建非常大的文件,包括Error和UpgradeTrace日志文件,其大小在6到5之间。 20Mb。
我在这里想念什么?通常这很容易做到。
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,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,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,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,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
解决方法
实际上,事实证明这很简单。
- 我将
<clear />
添加到了数据配置文件中,以删除 用于数据库的machine.config的配置。这是我意识到的地方 数据库还原出了点问题。 - 在托管提供商站点上使用SolidCP,我认为数据库还原 是成功的,但事实证明它是默默地失败。
- ISP进行了成功的手动还原
- 最后,我们将
<clear />
添加到SiteMapProvider设置中,因为ISP还安装了MySql提供程序,如果您不清除SiteMaps的machine.config配置,则会导致Sitefinity问题。
此后,一切都按预期进行。