将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的东西。
非常感谢您的帮助!
发布于 2011-11-21 16:16:22
我在测试迁移到6.x时遇到了同样的问题,你需要有最新版本的DDR菜单,但我怀疑因为你不能登录,所以你不能安装它。
我不确定哪些步骤可以省去,如果有的话,但这就是我所做的。
希望这能有所帮助
发布于 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菜单的站点。但是,它仍然不像它应该的那样顺畅。
https://stackoverflow.com/questions/8204418
复制相似问题