C# DotNetNuke在从5.3.1更新到v6.1.1后崩溃

C# DotNetNuke在从5.3.1更新到v6.1.1后崩溃,c#,asp.net,dotnetnuke,dotnetnuke-5,dotnetnuke-6,C#,Asp.net,Dotnetnuke,Dotnetnuke 5,Dotnetnuke 6,将DNN更新到最新版本后,我的网站无法正常工作。我怀疑这是一个主题相关的问题,因为我一直在做一些调试。但我不能再缩小范围了 “我的网站”中的当前stacktrace如下所示: [NullReferenceException: Object reference not set to an instance of an object.] DotNetNuke.UI.Containers.ActionBase.get_ModuleContext() +6 DotNetNuke.UI.C

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

“我的网站”中的当前stacktrace如下所示:

[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的内容


非常感谢您的帮助

在测试迁移到6.x时,我遇到了同样的问题,您需要最新版本的DDR菜单,但我怀疑,由于您无法登录,因此无法安装它

我不确定哪一步,如果有的话,你能从中解脱出来,但这就是我所做的

  • 从备份恢复到5.6.3
  • 在主机设置中关闭压缩
  • 将最小外部复制设置为默认蒙皮
  • 将en US设置为默认语言(不确定是否有必要,这是一次升级,我现在倾向于在主要升级时使用)
  • 在web.config中将DNN Nav设置为defaut导航提供程序
  • 更改容器以使用
  • 卸载DDR菜单1.2.2
  • 在web.config中删除DDRMenuNavigationProvider
  • 对数据库和文件系统进行新备份
  • 升级到6.x
  • 升级至DDR菜单v2.00.0
  • 将应用程序池设置为使用.Net4
  • 重新应用皮肤到几个页面,检查所有作品,如果确定,重置默认皮肤
  • 如有必要,重置压缩和默认语言

  • 希望这有助于

    您看到的问题源于DNN升级程序的运行方式与新DDR菜单的升级方式之间的冲突。DNN升级程序将ddrmunu.dll推送到bin目录中,但不为其运行IUpgrade代码,因此dll、代码和web.config设置不匹配。下一版本的DDR菜单应能解决此问题

    巴里的建议应该能解决这个问题,尽管这比我会采取的步骤要多。我要做的第一件事是用升级前的旧DLL替换新的DDRMunu DLL(DotNetNuke.Web.ddrmunu.DLL),看看这是否能让你的网站运行起来。如果是这样的话,那么你可以安装最新版本的DDRMenu,你就可以开始了

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


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

    经过更多的调查,我发现问题只发生在登录时。