症状

安装以下更新之一后,某些 SharePoint 页面将不呈现,并生成如下错误消息:

Web 部件错误: 此页面上的 Web 部件或 Web 表单控件无法显示或导入。 找不到该类型或未将其注册为安全类型。

原因

安装更新后,将在 SharePoint 2010 和 SharePoint 2013 中强制实施 ASP.NET 控件的允许列表。 如果未将 SharePoint 页面上的 Web 部件或控件添加到允许列表,则不会呈现页面。

解决方案

如果页面因使用不在 SafeControls 列表中的控件而未呈现,请按照以下步骤操作:

  1. 查看 SharePoint 统一日志记录服务 (ULS) 日志以查找 9s9ay 标记或包含“阻止具有属性的控件”的消息,该消息表明某控件已被阻止。

  2. 从错误消息中识别类型、命名空间和程序集强名称。

    • 示例 1

    如果有以下错误信息:

    "The type Contoso.Customizations.WebPartControl, Contoso.WebParts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f8f11d50a3a could not be found or it is not registered as safe."

    Type = "WebPartControl"

    Namespace = "Contoso.Customizations"

    Assembly strong name = "Contoso.WebParts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f8f11d50a3a"

    • 示例 2

    如果有以下错误信息:

    "Blocking control with property traversal markup. [tagName: SharePoint:WebPartControl][propName: propName1][type: typeName1]"

    Type = "WebPartControl" (not "typeName1")

    您可以通过查询类型名称在 Microsoft Docs 中找到命名空间和程序集数据。

  3. 如 SafeControls 元素(解决方案)中所述,将给定类型、命名空间和程序集强名称的新 SafeControls 元素添加到 configuration/SharePoint/SafeControls 元素下的 Web.config 文件,然后将 Safe 属性设置为 TRUE

有关 SafeControls 元素中属性值格式的更多信息,请参阅在程序包设计器中标记 SafeControls步骤 12 中的表格。

替代方法

如果您有许多不安全的控件,则可以按照以下步骤解决此问题:

  1. configuration/SharePoint 元素下的 Web.config 文件中编辑 SafeMode 元素。

  2. 添加一个值为 TrueControlCompatMode 属性。

警告

我们不建议您采用这种解决方法,因为这样会允许运行不安全的 ASP.net 控件。

Content Idea RequestCONTENT IDEA REQUEST 120896
Author: secure
Writer: v-weizhu
Tech Reviewer: qingliu; gli; mswann
Editor: v-jesits

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

你对翻译质量的满意程度如何?

哪些因素影响了你的体验?

是否还有其他反馈?(可选)

谢谢您的反馈意见!

×