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

时间:2011-11-20 20:20:33

标签: c# asp.net dotnetnuke dotnetnuke-5 dotnetnuke-6

将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。

非常感谢帮助!

2 个答案:

答案 0 :(得分:1)

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

我不确定哪些步骤,如果有任何可以切断的,但这就是我所做的。

  1. 从备份恢复到5.6.3
  2. 在主机设置中关闭压缩
  3. 将Minimal Extropy设置为默认外观
  4. 将en-US设置为默认语言(不确定是否有必要,这是一次升级,我现在倾向于进行重大升级)
  5. 将DNN Nav设置为web.config
  6. 中的defaut导航提供程序
  7. 更改要使用的容器 <%@ Register TagPrefix =“dnn”TagName =“ACTIONS”Src =“〜/ Admin / Containers / Actions.ascx”%>
  8. 卸载DDRmenu 1.2.2
  9. 删除web.config中的DDRMenuNavigationProvider
  10. 获取数据库和文件系统的新备份
  11. 升级至6.x
  12. 升级至DDR菜单v2.00.0
  13. 设置应用程序池以使用.Net4
  14. 将皮肤重新涂抹到几页以检查所有效果,如果确定,请重置默认皮肤
  15. 如有必要,重置压缩和默认语言
  16. 希望这有帮助

答案 1 :(得分:0)

您看到的问题是由DNN升级程序运行方式与新DDR菜单升级方式之间的冲突造成的。 DNN升级程序将DDRMenu.dll推送到bin目录,但不运行IUpgrade代码,因此DLL,代码和web.config设置不匹配。下一版DDR菜单应解决此问题。

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

如果这不起作用,我通常会尝试在升级之前使用代码和设置的组合以及DNN 6.1.1的良好安装,这些安装确实顺利进行,直到问题解决。我希望我有一个更具体的答案,但我通常匆忙(导致网站瘫痪)所以我没有花时间写出更科学的方法。

同样,这应该通过下一版DDR菜单解决,问题只影响已经使用DDR菜单的网站。但是,它仍然没有那么顺利。