الأعراض
عند استخدام حل بيئة الاختبار المعزولة أو جزء ويب، قد تتلقى رسائل الخطأ التي تشبه ما يلي في SharePoint سجلات نظام التسجيل الموحد (ULS). تشير هذه الرسائل إلى حظر بعض حلول بيئة الاختبار المعزولة أو أجزاء الويب.
بالنسبة SharePoint Foundation 2013 و SharePoint Enterprise Server 2016 مع تثبيت تحديث الأمان في مايو 2022:
معرف الحدث |
رساله |
ajrme |
فشل استدعاء ExecuteRequestInSandBox. System.ArgumentException: لم يكن النوع قابلا للحل في Microsoft. SharePoint. UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) |
ajlz0 |
الحصول على رسالة خطأ لنظام الاستثناء.الوسيطةException: لم يكن النوع قابلا للحل في Microsoft. SharePoint. UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) |
بالنسبة إلى SharePoint Foundation 2013 مع تثبيت تحديث الأمان يونيو 2022 أو تحديث أمان أحدث ول SharePoint Enterprise Server 2016 مع تثبيت تحديث الأمان في يوليو 2022 أو تحديث أمان أحدث:
معرف الحدث |
رساله |
6k389 |
نوع غير صحيح: type=XXXXX; assembly=YYYYY، في SPUserCodeSerializationBinder. تفضل بزيارة https://go.microsoft.com/fwlink/?LinkId=2196531 لمزيد من المعلومات ولمعرفة كيفية حل هذا الخطأ. |
ajrme |
فشل استدعاء ExecuteRequestInSandBox. System.ArgumentException: لم يكن النوع قابلا للحل في Microsoft. SharePoint. UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) |
ajlz0 |
الحصول على رسالة خطأ لنظام الاستثناء.الوسيطةException: لم يكن النوع قابلا للحل في Microsoft. SharePoint. UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) |
السبب
بدءا من تحديث الأمان في مايو 2022، تقوم خدمة بيئة الاختبار المعزولة SharePoint بتقييد الأنواع والتجميعات التي تسمح بتشغيلها بشكل افتراضي.
الحل
لإصلاح هذه المشكلة، يجب عليك تسجيل أنواع الجهات الخارجية أو تجميعاتها التي ستسمح لها خدمة بيئة الاختبار المعزولة SharePoint بتشغيلها. للقيام بذلك، اتبع الخطوات التالية:
-
بالنسبة SharePoint Foundation 2013، قم بتثبيت تحديث الأمان يونيو 2022 أو تحديث أمان أحدث. بالنسبة SharePoint Enterprise Server 2016، قم بتثبيت تحديث الأمان في يوليو 2022 أو تحديث أمان أحدث.
-
استخدم حل بيئة الاختبار المعزولة المتأثرة أو جزء الويب لتشغيل المشكلة.
-
افتح سجل SharePoint ULS وابحث عن معرف الحدث "6K389". ستجد الرسالة التالية مع معرف الحدث هذا:
نوع غير صحيح: type=XXXXX; assembly=YYYYY في SPUserCodeSerializationBinder. تفضل بزيارة https://go.microsoft.com/fwlink/?LinkId=2196531 لمزيد من المعلومات ولمعرفة كيفية حل هذا الخطأ.
-
لاحظ الأنواع والتجميعات المحظورة.
-
افتح ملف web.config لتطبيق الويب حيث توجد حلول بيئة الاختبار المعزولة أو أجزاء ويب. عادة ما يبدو مسار web.config كما يلي:
C:\inetpub\wwwroot\wss\VirtualDirectories\<منفذ تطبيق الويب> -
أضف عنصر AllowedListItems في قسم التكوين/SharePoint/SafeMode.
-
داخل عنصر AllowedListItems ، أضف عنصر AllowedItem مع تعيين سمة الاسم إلى 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>