อาการ
หลังจากที่คุณติดตั้งหนึ่งในการอัปเดตต่อไปนี้ แล้ว หน้า SharePoint บางหน้าจะไม่แสดงและสร้างข้อความแสดงข้อผิดพลาดเช่นต่อไปนี้:
หมายเหตุ
ข้อผิดพลาดของ Web Part: ไม่สามารถแสดงหรือนําเข้าตัวควบคุม Web Part หรือตัวควบคุมฟอร์มของ Web Form บนเพจนี้ได้ ไม่พบชนิดหรือไม่ได้ลงทะเบียนว่าปลอดภัย
- คําอธิบายของการอัปเดตความปลอดภัยสําหรับ SharePoint Enterprise Server 2013: 8 กันยายน 2020 (KB4484515)
- คําอธิบายของการอัปเดตความปลอดภัยสําหรับ SharePoint Foundation 2013: 8 กันยายน 2020 (KB4484488)
- คําอธิบายของการอัปเดตความปลอดภัยสําหรับ SharePoint Foundation 2010: 8 กันยายน 2020 (KB4486667)
สาเหตุ
รายการที่อนุญาตของตัวควบคุม ASP.NET จะถูกบังคับใช้ใน SharePoint 2010 และ SharePoint 2013 หลังจากที่คุณติดตั้งการอัปเดต ถ้า Web Part หรือตัวควบคุมบนหน้า SharePoint ไม่ได้ถูกเพิ่มลงในรายการที่อนุญาต หน้านั้นจะไม่แสดง
การแก้ปัญหา
ถ้าหน้าไม่แสดงอีกต่อไปเนื่องจากพวกเขาใช้ตัวควบคุมที่ไม่ได้อยู่ในรายการ SafeControls ให้ทําตามขั้นตอนเหล่านี้:
รีวิว แฟ้มบันทึกของ SharePoint Unified Logging Service (ULS) เพื่อค้นหาแท็ก 9s9ay หรือข้อความที่มี "ตัวควบคุมการบล็อกที่มีคุณสมบัติ" ที่ระบุว่าตัวควบคุมถูกบล็อก
ระบุชนิด Namespace และชื่อที่คาดเดายากของแอสเซมบลีจากข้อความแสดงข้อผิดพลาด
- ตัวอย่าง 1
ได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
"ชนิด Contoso.Customizations.WebPartControl, Contoso.WebParts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f8f11d50a3a ไม่พบหรือไม่ได้ลงทะเบียนว่าปลอดภัย"
ชนิด = "WebPartControl"Namespace = "Contoso.Customizations"
Assembly strong name = "Contoso.WebParts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f8f11d50a3a"
- ตัวอย่าง 2
ได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:
"การปิดกั้นการควบคุมด้วยมาร์กอัปข้ามคุณสมบัติ [tagName: SharePoint:WebPartControl][propName: propName1][type: typeName1]"
พิมพ์ = "WebPartControl" (ไม่ใช่ "typeName1")คุณสามารถค้นหา Namespace และข้อมูลแอสเซมบลีใน เอกสาร Microsoft ได้โดยการสอบถามชื่อชนิด
เพิ่มองค์ประกอบ SafeControls ใหม่สําหรับชนิดที่ระบุ Namespace และชื่อที่คาดเดายากของแอสเซมบลีลงในไฟล์ Web.config ภายใต้องค์ประกอบการกําหนดค่า/SharePoint/SafeControls ตามที่อธิบายไว้ในองค์ประกอบ SafeControls (โซลูชัน) แล้วตั้งค่าแอตทริบิวต์ Safe เป็น TRUE
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบของค่าแอตทริบิวต์ในองค์ประกอบ SafeControls ให้ดูตารางในขั้นตอนที่ 12 ในการทําเครื่องหมายตัวควบคุมที่ปลอดภัยใน Designer แพคเกจ
วิธีแก้ไขปัญหาชั่วคราว
ถ้าคุณมีตัวควบคุมที่ไม่ปลอดภัยจํานวนมาก คุณสามารถแก้ไขปัญหานี้ได้โดยทําตามขั้นตอนเหล่านี้:
- แก้ไของค์ประกอบ SafeMode ในไฟล์ Web.config ภายใต้องค์ประกอบการกําหนดค่า/SharePoint
- เพิ่มแอตทริบิวต์ ControlCompatMode ที่มีค่าเป็น True
ข้อควรระวัง
เราไม่แนะนําให้ใช้การแก้ไขปัญหาชั่วคราวนี้ เนื่องจากวิธีนี้จะอนุญาตให้เรียกใช้ตัวควบคุม ASP.net ที่ไม่ปลอดภัยได้