อาการ
เมื่อคุณใช้โซลูชัน Sandbox หรือ Web Part คุณอาจได้รับข้อความแสดงข้อผิดพลาดที่คล้ายกับข้อความต่อไปนี้ในบันทึกSharePoint Unified Logging System (ULS) ข้อความเหล่านี้ระบุว่าโซลูชัน Sandbox หรือ Web Part บางอย่างถูกบล็อก
สําหรับ SharePoint Foundation 2013 และ SharePoint Enterprise Server 2016 ที่มีการติดตั้งการอัปเดตความปลอดภัยเดือนพฤษภาคม 2022:
รหัสเหตุการณ์ |
ข้อความ |
ajrme |
การเรียก ExecuteRequestInSandBox ล้มเหลว System.ArgumentException: ไม่สามารถแก้ไข Type ได้ที่ Microsoft SharePoint UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) ที่ ...... |
ajlz0 |
การรับข้อความแสดงข้อผิดพลาดสําหรับข้อยกเว้น System.ArgumentException: ไม่สามารถแก้ไข Type ได้ที่ Microsoft SharePoint UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) ที่ ...... |
สําหรับ SharePoint Foundation 2013 ที่มีการติดตั้งการอัปเดตความปลอดภัยประจําเดือนมิถุนายน 2022 หรือการอัปเดตความปลอดภัยที่ใหม่กว่า และสําหรับ SharePoint Enterprise Server 2016 ที่มีการอัปเดตความปลอดภัยประจําเดือนกรกฎาคม 2022 หรือการอัปเดตความปลอดภัยที่ใหม่กว่าติดตั้งไว้:
รหัสเหตุการณ์ |
ข้อความ |
6k389 |
ชนิดไม่ถูกต้อง: type=XXXXX; assembly=YYYYY, in SPUserCodeSerializationBinder. เยี่ยมชม https://go.microsoft.com/fwlink/?LinkId=2196531 สําหรับข้อมูลเพิ่มเติมและเรียนรู้วิธีการแก้ไขข้อผิดพลาดนี้ |
ajrme |
การเรียก ExecuteRequestInSandBox ล้มเหลว System.ArgumentException: ไม่สามารถแก้ไข Type ได้ที่ Microsoft SharePoint UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) ที่ ...... |
ajlz0 |
การรับข้อความแสดงข้อผิดพลาดสําหรับข้อยกเว้น System.ArgumentException: ไม่สามารถแก้ไข Type ได้ที่ Microsoft SharePoint UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) ที่ ...... |
สาเหตุ
เริ่มต้นด้วยการอัปเดตความปลอดภัยเดือนพฤษภาคม 2022 บริการSharePoint Sandbox จะจํากัดประเภทและแอสเซมบลีที่อนุญาตให้ทํางานตามค่าเริ่มต้น
การแก้ไข
เมื่อต้องการแก้ไขปัญหานี้ คุณต้องลงทะเบียนชนิดของบริษัทอื่นหรือแอสเซมบลีที่บริการ sandbox SharePoint จะอนุญาตให้ทํางานได้ โดยทำตามขั้นตอนต่อไปนี้:
-
สําหรับ SharePoint Foundation 2013 ให้ติดตั้งการอัปเดตความปลอดภัยประจําเดือนมิถุนายน 2022 หรือการอัปเดตความปลอดภัยที่ใหม่กว่า สําหรับSharePoint Enterprise Server 2016 ให้ติดตั้งการอัปเดตความปลอดภัยเดือนกรกฎาคม 2022 หรือการอัปเดตความปลอดภัยที่ใหม่กว่า
-
ใช้โซลูชัน Sandbox หรือ Web Part ที่ได้รับผลกระทบเพื่อทริกเกอร์ปัญหา
-
เปิดบันทึก SharePoint ULS และค้นหารหัสเหตุการณ์ "6K389" คุณจะพบข้อความต่อไปนี้ที่มี ID เหตุการณ์นั้น:
ชนิดไม่ถูกต้อง: type=XXXXX; assembly=YYYYY in SPUserCodeSerializationBinder. เยี่ยมชม https://go.microsoft.com/fwlink/?LinkId=2196531 สําหรับข้อมูลเพิ่มเติมและเรียนรู้วิธีการแก้ไขข้อผิดพลาดนี้
-
หมายเหตุชนิดและแอสเซมบลีที่ถูกบล็อก
-
เปิดไฟล์web.configของแอปพลิเคชันบนเว็บที่มี Sandbox Solutions หรือ Webparts อยู่ โดยทั่วไปเส้นทางของweb.configจะมีลักษณะดังนี้:
C:\inetpub\wwwroot\wss\VirtualDirectories\<พอร์ตแอปพลิเคชันบนเว็บ> -
เพิ่มองค์ประกอบ AllowedListItems ในส่วน การตั้งค่าคอนฟิก/SharePoint/SafeMode
-
ภายในองค์ประกอบ AllowedListItems ให้เพิ่มองค์ประกอบ AllowedItem ที่ตั้งค่าแอตทริบิวต์ Name เป็น AllowedSandboxType ในรูปแบบต่อไปนี้:
-
เมื่อต้องการยกเลิกการบล็อกชนิดที่ระบุ ให้เพิ่มองค์ประกอบที่มีคุณสมบัติ ชนิด ดังนี้: <AllowedItem Name="AllowedSandboxType" Type="XXXXX"/>
-
เมื่อต้องการยกเลิกการบล็อกแอสเซมบลีเฉพาะ ให้เพิ่มองค์ประกอบที่มีคุณสมบัติ แอสเซมบลี ดังนี้:<AllowedItem Name="AllowedSandboxType" Assembly="YYYYY"/>
ต่อไปนี้เป็นตัวอย่าง:
<SafeMode
MaxControls = "200"
CallStack = "false"
DirectFileDependencies ="10"
TotalFileDependencies = "250"
AllowPageLevelTrace = "false"
ControlCompatMode="false"
>
<PageParserPaths>
</PageParserPaths>
<AllowedListItems>
<AllowedItem Name="AllowedSandboxType" Type="Microsoft.SharePoint.Portal.WebControls.RSSAggregatorWebPart, Microsoft.SharePoint.Portal, Version=15.0.0.0, Culture=neutral, PublicKeyToken=xxxxxx"/>
<AllowedItem Name="AllowedSandboxType" Assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=xxxxxx"/>
</AllowedListItems>
</SafeMode>