首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从5.3.1更新到v6.1.1后,DotNetNuke崩溃

从5.3.1更新到v6.1.1后,DotNetNuke崩溃
EN

Stack Overflow用户
提问于 2011-11-21 04:20:33
回答 2查看 1.1K关注 0票数 0

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

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

代码语言:javascript
复制
[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的东西。

非常感谢您的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-21 16:16:22

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

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

  1. 从backups
  2. 恢复到5.6.3在主机设置中关闭压缩
  3. set Minimal as default skin
  4. 将en-US设置为默认语言(不确定是否有此必要,这是为了一个升级,现在我倾向于在主要升级中这样做)在web.config
  5. Change containers中,
  6. 将DNN Nav设置为默认导航提供程序,以使用<%@ Register TagPrefix="dnn“TagName="ACTIONS”Src="~/Admin/Containers/Actions.ascx“%>
  7. 卸载数据库和文件的新备份中的DDRmenu 1.2.2
  8. Remove DDRMenuNavigationProvider to 6.x
  9. Upgrade to DDR Menu v2.00.0
  10. 设置应用程序池使用.Net4
  11. Re-apply皮肤来检查几个页面的所有工作情况if ok重置默认皮肤
  12. 重置压缩和默认语言如有必要

希望这能有所帮助

票数 1
EN

Stack Overflow用户

发布于 2011-11-26 12:38:06

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

Barry的建议应该可以解决这个问题,尽管它比我采取的步骤更多。我要做的第一件事就是在升级之前用旧的DDRMenu动态链接库(DotNetNuke.Web.DDRMenu.dll)替换新的DLL,看看这是否能让你的站点运行起来。如果是这样的话,你就可以安装最新版本的DDRMenu了,你应该可以开始工作了。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8204418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档