3

另一个愚蠢的...试图访问最初由管理员作为普通用户创建的现有内容项,但得到以下多汁的异常。我可以以该用户的身份查看内容树中的项目,但是当我单击某个项目以查看它时引发异常(并且可能在下一步中对其进行编辑)。

“/”应用程序中的服务器错误。

不允许使用空 ID。参数名称:displayName

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.ArgumentNullException:不允许空 ID。参数名称:displayName

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

堆栈跟踪:

[ArgumentNullException:不允许空 ID。参数名称:displayName]
Sitecore.Diagnostics.Assert.ArgumentNotNullOrEmpty(String argument, String argumentName) +75
Sitecore.Shell.Applications.ContentEditor.EditorFormatter.RenderSectionBegin(Control parent, String controlId, String sectionName, String displayName, String icon, Boolean isCollapsed , 布尔渲染字段)+69
Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.RenderSectionPanel(XmlNode 元素)+214
Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.RenderElement(XmlNode 元素)+487
Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.AddText(XmlNode 元素)+423
Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.RenderElement(XmlNode 元素)+533
Sitecore.Shell.Applications.ContentEditor。 Pipelines.RenderContentEditor.RenderSkinedContentEditor.AddText(XmlNode 元素)+423
Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.RenderElement(XmlNode 元素)+533
Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.Render( XmlDocument 皮肤)+93
Sitecore.Shell.Applications.ContentEditor.Pipelines.RenderContentEditor.RenderSkinedContentEditor.Process(RenderContentEditorArgs args) +353 (Object , Object[] ) +61
Sitecore.Pipelines.PipelineMethod.Invoke(Object[] 参数) +36
Sitecore.Pipelines.CoreProcessor .Invoke(Object[] 参数) +43
Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) +133
Sitecore.Pipelines.CorePipeline.Run(String pipelineName, PipelineArgs args, String pipelineDomain, Boolean failIfNotExists) +154
Sitecore.Pipelines.CorePipeline .Run(String pipelineName, PipelineArgs args, String pipelineDomain) +64
Sitecore.Pipelines.CorePipeline.Run(String pipelineName, PipelineArgs args) +50
Sitecore.Shell.Applications.ContentManager.Editor.Render(RenderContentEditorArgs args, Control parent) +450
Sitecore.Shell.Applications.ContentManager.Editor.Render(Item item, Item root, Hashtable fieldInfo, Control parent, Boolean showEditor) +239 Sitecore .Shell.Applications.ContentManager.ContentEditorForm.RenderEditor(Item item, Item root, Control parent, Boolean showEditor) +153
Sitecore.Shell.Applications.ContentManager.ContentEditorForm.UpdateEditor(Item 文件夹, Item root, Boolean showEditor) +238
Sitecore。 Shell.Applications.ContentManager.ContentEditorForm.Update() +249 Sitecore.Shell.Applications.ContentManager.ContentEditorForm.OnPreRendered(EventArgs e) +116

[TargetInvocationException: 调用的目标已抛出异常。]
System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo 方法, 对象目标, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner) +0
System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo方法、对象目标、对象 [] 参数、签名 sig、MethodAttributes 方法属性、RuntimeType typeOwner) +69
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] 参数, CultureInfo 文化, Boolean skipVisibilityChecks) + 306
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] 参数, CultureInfo 文化) +22 System.Reflection.MethodBase.Invoke(Object obj, Object[] 参数) +19
Sitecore.Reflection.ReflectionUtil .InvokeMethod(MethodInfo 方法, Object[] 参数, Object obj) +38
Sitecore.Reflection.ReflectionUtil.CallMethod(Type type, Object obj, String methodName, Boolean includeNonPublic, Boolean includeInherited, Boolean includeStatic, Object[] 参数) +104
Sitecore .Reflection.ReflectionUtil.CallMethod(Type type, Object obj, String methodName, Boolean includeNonPublic, Boolean includeInherited, Object[] 参数) +26
Sitecore.Reflection.ReflectionUtil.CallMethod(Object obj, String methodName, Boolean includeNonPublic, Boolean includeInherited, Object[] 参数) +41
Sitecore.Shell.Applications.ContentManager.ContentEditorPage.OnPreRender(EventArgs e) +87 System.Web.UI。 Control.PreRenderRecursiveInternal() +150
System.Web.UI.Page.ProcessRequestMain(布尔型 includeStagesBeforeAsyncPoint,布尔型 includeStagesAfterAsyncPoint)+2838

版本信息:Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.0.30319.272

4

1 回答 1

3

因此,在找到以下答案后,我返回并删除了帐户上设置的任何自定义访问权限(这解决了我的问题):

一条很长的消息,但对找到解决方案也没有多大帮助。

我发现唯一有用的是 http://egointeractive.posterous.com/argumentnullexception-null-ids-are-not-allowe

其中提到了由于模板上的读取权限被拒绝而发生的相同事情。

这确实解决了问题,给了我另一个问题——某些模板上的某些字段不应该对特定用户可见。幸运的是,这个问题的答案很简单:我需要做的就是拒绝 Field Read 权限,而不是 Read 权限。

参考: http ://trayek.wordpress.com/2013/03/21/sitecore-content-editor-woes/

对于后代,这是完整的后代(RIP)链接:

[ArgumentNullException]:不允许空 ID。参数名称:displayName 我在设置具有有限读/写权限的用户后遇到了这个错误。我创建了一个自定义角色,分配了“Sitecore 客户端作者”和“Sitecore 客户端用户”,将用户分配给该角色,并检查他们是否可以登录并查看内容树。一切似乎都很好,直到我尝试单击“主页”下的任何项目。在某些情况下,会发生以下两种情况之一:我收到此错误:[ArgumentNullException]: Null ids are not allowed。参数名称:displayName 我知道应该有字段的项目,我没有尝试不同的角色组合(包括删除我的自定义角色并仅使用 Sitecore 的默认值),但我仍然遇到了问题 - 再次,仅在某些项目上。

该网站最近从 Sitecore 5(我不确定哪个版本)升级到 Sitecore 6.3.1(修订版 110112),据我所知,直到此时问题才变得明显。我以前在几乎完全相同的情况下看到过这个错误,所以我敢打赌它与升级有关。

当我查看用户创建的模板(不是系统模板)权限时,我注意到很多模板的部分/字段子项的继承被拒绝。我看不出应该是这种情况的原因,所以我花了一些时间来摆脱显式拒绝(在这个特定的安装中有 50 多个案例) - 嘿,错误消失了!我必须使用安全编辑器功能区中的“删除继承”按钮;使用“分配”或取消选中该项目的“继承”权限旁边的 [X] 无效。

参考:http ://web.archive.org/web/20130317212504/http://egointeractive.posterous.com/argumentnullexception-null-ids-are-not-allowe

于 2013-04-26T20:27:25.010 回答