5

嗨,在预览期间加载页面时,我没有加载功能区。您有任何解决方法的线索吗?

Object reference not set to an instance of an object.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 


[NullReferenceException: Object reference not set to an instance of an object.]
   Sitecore.Data.Database.ApplySecurity(Item[] items) +112
   Sitecore.Data.Database.SelectItems(String query) +252
   Sitecore.Shell.Applications.WebEdit.Commands.OpenMyItems.GetHeader(CommandContext context, String header) +188
   Sitecore.Web.UI.WebControls.Ribbons.Ribbon.RenderSmallButton(HtmlTextWriter output, Item button, CommandContext commandContext) +307
   Sitecore.Web.UI.WebControls.Ribbons.Ribbon.RenderButton(HtmlTextWriter output, Item button, CommandContext commandContext) +732
   Sitecore.Web.UI.WebControls.Ribbons.Ribbon.RenderChunk(HtmlTextWriter output, Item chunk, CommandContext commandContext) +330
   Sitecore.Web.UI.WebControls.Ribbons.Ribbon.RenderChunk(HtmlTextWriter output, Item chunk, CommandContext commandContext, Boolean isContextual, String id) +204
   Sitecore.Web.UI.WebControls.Ribbons.Ribbon.RenderChunk(HtmlTextWriter output, Item chunk, CommandContext commandContext, Boolean isContextual) +242
   Sitecore.Web.UI.WebControls.Ribbons.Ribbon.RenderChunks(HtmlTextWriter output, Item strip, CommandContext commandContext, Boolean isContextual) +442
   Sitecore.Web.UI.WebControls.Ribbons.Ribbon.RenderStrips(HtmlTextWriter output, Item ribbon, Boolean isContextual, ListString visibleStripList) +800
   Sitecore.Web.UI.WebControls.Ribbons.Ribbon.RenderStrips(HtmlTextWriter output, Item defaultRibbon, Item contextualRibbon, ListString visibleStripList) +215
   Sitecore.Web.UI.WebControls.Ribbons.Ribbon.Render(HtmlTextWriter output) +610
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +149
   Sitecore.Web.HtmlUtil.RenderControl(Control ctl) +74
   Sitecore.Shell.Applications.WebEdit.WebEditRibbonForm.RenderRibbon(Item item) +603
   Sitecore.Shell.Applications.WebEdit.WebEditRibbonForm.OnLoad(EventArgs e) +1238

[TargetInvocationException: Exception has been thrown by the target of an invocation.]
   System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) +0
   System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) +76
   System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +193
   System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters) +35
   Sitecore.Web.UI.Sheer.ClientPage.OnLoad(EventArgs e) +337
   System.Web.UI.Control.LoadRecursive() +71
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3178
4

3 回答 3

8

从堆栈跟踪信息看来,问题出My Items在功能区中的按钮上。

在此处输入图像描述

似乎由于某种原因,在加载此按钮时执行的快速查询会返回一个包含 null 的项目列表。您有任何自定义数据提供者吗?

您可以尝试两种解决方案:

  • 清除/sitecore/admin/cache.aspx页面缓存
  • 通过以管理员身份运行此查询来查找导致问题的项目
Item[] items = Sitecore.Client.ContentDatabase.SelectItems(
    "fast://*[@__lock='%\"full-username-which-experienced-exception-with-domain-name\"%']");

另一个选项是从功能区中隐藏此按钮(在core数据库中删除或更改 的安全权限/sitecore/content/Applications/WebEdit/Ribbons/WebEdit/Page Editor/Edit/My Items)。根据我的经验,此按钮很少在该模式下使用,并且每次加载此模式时Page Editor都会变慢,按钮会计算当前用户锁定的所有文章,因此无论如何删除它可能是个好主意。Page EditorMy items

于 2013-08-06T18:35:39.843 回答
3

我在页面编辑模式下的 Sitecore 7 中遇到了同样的问题。我还验证了在内容编辑器中单击“我的项目”按钮时发生的错误。

我发现了 Alex Shyba 的这篇文章:http: //sitecoreblog.alexshyba.com/2011/11/hidden-gem-of-sitecore-page-editor.html

他的帖子建议在 web.config 或更好的包含文件中设置此设置:

<setting name="WebEdit.ShowNumberOfLockedItemsOnButton" value="false" />

这为我解决了页面编辑器中的问题,并且干净且易于实施。希望这也可以帮助其他为此苦苦挣扎的人。

于 2013-08-21T20:03:17.167 回答
2

当我从另一台机器上的备份恢复数据库时,使用 7.1 开始出现此错误。我能够通过重建搜索索引来解决它:

桌面 > 控制面板 > 数据库 > 重建搜索索引

我还清理了数据库并重建了链接数据库,但似乎并没有修复它。

于 2014-07-02T21:17:05.757 回答