قد لا تعمل أجزاء ويب التي تعتمد على WPProperty بشكل صحيح في SharePoint Server (KB5003528)

ينطبق على
SharePoint Server 2016 SharePoint Server 2019 SharePoint Foundation 2013 SP1

الأعراض

قد لا يعمل جزء ويب الذي يعتمد على WPProperty بشكل صحيح وينشئ علامات حدث a7wm1 في سجلات نظام التسجيل الموحد ل SharePoint (ULS).

السبب

تحدث هذه المشكلة لأن SharePoint Server يتطلب الآن من المزارع الإعلان عن أنواع .NET المسموح لها بالوصول إلى WPProperty في ملف web.config. لن يكون لدى أنواع .NET غير المدرجة حق الوصول إلى WPProperty كإجراء وقائي للأمان.

الدقة

لحل هذه المشكلة، قم بتثبيت أحد التحديثات التالية:

لجعل جزء ويب يعمل كما هو متوقع، اتبع الخطوات التالية للإعلان عن نوع (أنواع) .NET المتأثرة كما هو مسموح به للوصول إلى WPProperty في ملف web.config.

هام

السماح فقط بأنواع .NET بالوصول إلى WPProperty بعد التأكد من أنه من الآمن القيام بذلك.

  1. افتح ملف web.config لتطبيق الويب الخاص بك على كل خادم في مزرعة SharePoint.

  2. ابحث عن قسم التكوين/SharePoint/SafeMode .

  3. أضف قسم AllowedWPProperties إذا لم يكن موجودا بالفعل.

  4. أضف عنصر AllowedWPProperty جديدا مع سمات النوعوخاصيةName لتمثيل النوع الذي يجب السماح له بالوصول إلى WPProperty.

    <SafeMode MaxControls="200" CallStack="false" DirectFileDependencies="15" TotalFileDependencies="250" AllowPageLevelTrace="false">
        <AllowedWPProperties>
            <AllowedWPProperty type="<allowedWPPropertyTypeName>,<allowedWPPropertyAssemblyName>, <AssemblyVersion>, <AssemblyLanguageSetting>, <AssemblyPublicKey>" propertyName="<Allow WPProperty property name>"/>
        </AllowedWPProperties>
    </SafeMode>

  5. احفظ التغيير إلى ملف web.config.

لتحديد القيم الصحيحة للسمتين type و propertyName ، استعلم عن سجل ULS لعلامة الحدث a7wm1 ولاحظ إدخال السجل. على سبيل المثال:
 
"WPProperty has been blocked for security reason. blocked AssemblyQualifiedName is "<BlockedWPPropertyTypeName>, <allowedWPPropertyAssemblyName>, <AssemblyVersion>, <AssemblyLanguageSetting>, <AssemblyPublicKey>" | blocked property name is "<blocked WPProperty name>",
 
للسماح لهذا النوع بالوصول إلى WPProperty، قم بتعيين سمة نوع AllowedWPPProperty إلى قيمة AssemblyQualifiedName المحظورة وتعيين سمة propertyName إلى قيمة اسم الخاصية المحظورة.

محفوظات التغييرات

يلخص الجدول التالي بعض أهم التغييرات على هذا الموضوع.

التاريخ الوصف
14 سبتمبر 2021 تمت إضافة تحديثين في قسم "الحل".