DotNetNuke从5.3.1升级到6.1.1后崩溃

本文关键字:崩溃 1升 DotNetNuke | 更新日期: 2023-09-27 18:15:11

更新DNN到最新版本后,我的网站不工作。我怀疑这是一个主题相关的问题,因为我一直在做一些调试。但我无法进一步缩小范围。

我的站点的当前堆栈跟踪如下所示:

[NullReferenceException: Object reference not set to an instance of an object.]
    DotNetNuke.UI.Containers.ActionBase.get_ModuleContext() +6
    DotNetNuke.UI.Containers.ActionBase.get_ActionRoot() +30
    DotNetNuke.UI.Containers.ActionBase.OnLoad(EventArgs e) +42
[ModuleLoadException: An error has occurred.]
    DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(String FriendlyMessage, Control ctrl, Exception exc, Boolean DisplayErrorMessage) +400
[PageLoadException: An error has occurred.]
    DotNetNuke.Services.Exceptions.Exceptions.ProcessPageLoadException(Exception exc, String URL) +323
    DotNetNuke.Services.Exceptions.Exceptions.ProcessPageLoadException(Exception exc) +89
    DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(String FriendlyMessage, Control ctrl, Exception exc, Boolean DisplayErrorMessage) +525
    DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(Control ctrl, Exception exc, Boolean DisplayErrorMessage) +189
    DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(Control ctrl, Exception exc) +40
    DotNetNuke.UI.Containers.ActionBase.OnLoad(EventArgs e) +85
    DotNetNuke.Web.DDRMenu.Actions.OnLoad(EventArgs e) +67
    System.Web.UI.Control.LoadRecursive() +50
    System.Web.UI.Control.LoadRecursive() +141
    System.Web.UI.Control.LoadRecursive() +141
    System.Web.UI.Control.LoadRecursive() +141
    System.Web.UI.Control.LoadRecursive() +141
    System.Web.UI.Control.LoadRecursive() +141
    System.Web.UI.Control.LoadRecursive() +141
    System.Web.UI.Control.LoadRecursive() +141
    System.Web.UI.Control.LoadRecursive() +141
    System.Web.UI.Control.LoadRecursive() +141
    System.Web.UI.Control.LoadRecursive() +141
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627
[PageLoadException: An error has occurred.]
    DotNetNuke.Services.Exceptions.Exceptions.ProcessPageLoadException(Exception exc, String URL) +323
    DotNetNuke.Framework.PageBase.OnError(EventArgs e) +450
    System.Web.UI.Page.HandleError(Exception e) +84
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6776
    System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +242
    System.Web.UI.Page.ProcessRequest() +80
    System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +21
    System.Web.UI.Page.ProcessRequest(HttpContext context) +49
    ASP.default_aspx.ProcessRequest(HttpContext context) in c:'windows'Microsoft.NET'Framework'v2.0.50727'Temporary ASP.NET Files'root'84194812'86a29f2c'App_Web_toxjy2nh.0.cs:0
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75

从这里我可以看到它与DDRMenu组件有关。我已经为网站尝试了我自己的皮肤,对于那些完全相同的行说一些关于SolPartMenu/Action。

非常感谢你的帮助!

DotNetNuke从5.3.1升级到6.1.1后崩溃

我在测试移动到6时遇到了同样的问题。你需要最新版本的DDR菜单,但我怀疑,因为你不能登录,你不能安装它。

我不确定哪些步骤,如果有的话,你可以删掉,但这就是我所做的。

  1. 从备份恢复到5.6.3
  2. 关闭主机设置中的压缩
  3. 设置最小外型为默认皮肤
  4. 将en-US设置为默认语言(不确定这是否必要,这是一次升级,我现在倾向于在主要升级时这样做)
  5. 在web.config
  6. 中设置DNN导航为默认导航提供商
  7. 更改使用的容器<%@ Register TagPrefix="dnn" TagName="ACTIONS" Src="~/Admin/Containers/ACTIONS . "ascx " %>
  8. Uninstall DDRmenu 1.2.2
  9. 删除web.config中的DDRMenuNavigationProvider
  10. 重新备份数据库和文件系统
  11. 升级到6.x
  12. 升级到DDR菜单v2.00.0
  13. 设置应用程序池使用。net
  14. 重新应用皮肤到几个页面检查所有作品,如果ok重置默认皮肤
  15. 必要时重置压缩和默认语言

希望能有所帮助

你看到的问题是由于DNN升级器的运行方式和新的DDR菜单想要升级的方式之间的冲突。DNN升级器将DDRMenu.dll推入bin目录,但不为它运行IUpgrade代码,因此DLL,代码和web。配置设置不匹配。下一个版本的DDR菜单应该会解决这个问题。

Barry的建议应该能解决这个问题,尽管它比我要采取的步骤要多。我要尝试的第一件事是用升级前的旧DLL替换新的DDRMenu DLL (DotNetNuke.Web.DDRMenu.dll),看看这是否能让你的网站运行。如果是,那么你可以安装最新版本的DDRMenu,你应该很好。

如果这不起作用,我通常会在升级之前尝试代码和代码设置的组合,并安装DNN 6.1.1,直到问题解决。我希望我能有一个更具体的答案,但我通常很赶时间(因为网站关闭了),所以我没有花时间写一个更科学的方法。

同样,这应该在DDR菜单的下一个版本中解决,这个问题只影响已经使用DDR菜单的站点。但是,它仍然不像它应该的那样光滑。