0

将 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 的内容。

非常感谢您的帮助!

4

2 回答 2

1

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

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

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

希望这可以帮助

于 2011-11-21T08:16:22.230 回答
0

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

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

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

同样,下一个版本的 DDR 菜单应该可以解决这个问题,并且该问题只会影响已经在使用 DDR 菜单的站点。但是,它仍然没有应有的顺利。

于 2011-11-26T04:38:05.590 回答