您在预览期间加载页面时我没有加载功能区。 你有任何解决方法吗?
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
答案 0 :(得分: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 Editor
,因为每次加载此模式时,My items
按钮会计算当前用户锁定的所有文章所以去掉它可能是一个好主意。
答案 1 :(得分:2)
我在网页编辑模式下遇到了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" />
这解决了我在页面编辑器中的问题,并且干净且易于实现。希望这也有助于其他人在努力解决这个问题。
答案 2 :(得分:2)
使用7.1时,我从另一台计算机上的备份还原数据库时启动了此错误。我能够通过重建搜索索引来解决它:
桌面&gt;控制面板&gt;数据库&gt;重建搜索索引
我还清理了数据库并重建了链接数据库,但那些似乎没有解决它。