Các Phần Web phụ thuộc vào WPProperty có thể không còn hoạt động chính xác trong SharePoint Server (KB5003528)

Áp dụng cho
SharePoint Server 2016 SharePoint Server 2019 SharePoint Foundation 2013 SP1

Triệu chứng

Phần Web phụ thuộc vào WPProperty có thể không còn hoạt động đúng cách và tạo thẻ sự kiện a7wm1 trong nhật ký Hệ thống Ghi nhật ký Hợp nhất SharePoint (ULS).

Nguyên nhân

Sự cố này xảy ra vì SharePoint Server hiện yêu cầu các cụm máy chủ phải khai báo các loại .NET được phép truy nhập WPProperty trong tệp web.config mình. Các loại .NET không được liệt kê sẽ không có quyền truy cập vào WPProperty để phòng ngừa bảo mật.

Giải pháp

Để giải quyết sự cố này, hãy cài đặt một trong các bản cập nhật sau:

Để Phần Web hoạt động như mong đợi, hãy thực hiện các bước sau để khai báo (các) loại .NET bị ảnh hưởng như được phép truy nhập WPProperty trong tệp web.config động.

Quan trọng

Chỉ cho phép các loại .NET truy cập WPProperty sau khi bạn đã xác nhận rằng nó là an toàn để làm như vậy.

  1. Mở tệp web.config ứng dụng web của bạn trên mỗi máy chủ trong cụm máy chủ SharePoint của bạn.

  2. Tìm phần cấu hình/SharePoint/SafeMode .

  3. Thêm mục AllowedWPProperties nếu nó chưa tồn tại.

  4. Thêm một phần tử AllowedWPProperty mới với thuộc tính type và propertyName để đại diện cho loại được phép truy nhập 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. Lưu thay đổi vào tệp web.config của bạn.

Để xác định các giá trị chính xác cho các thuộc tính loại và propertyName, truy vấn nhật ký ULS cho thẻ sự kiện a7wm1 và lưu ý mục nhật ký. Ví dụ:
 
"WPProperty has been blocked for security reason. blocked AssemblyQualifiedName is "<BlockedWPPropertyTypeName>, <allowedWPPropertyAssemblyName>, <AssemblyVersion>, <AssemblyLanguageSetting>, <AssemblyPublicKey>" | blocked property name is "<blocked WPProperty name>",
 
Để cho phép loại này truy nhập WPProperty, hãy đặt thuộc tính loại AllowedWPPProperty cho giá trị của AssemblyQualifiedName bị chặn và đặt thuộc tính propertyName thành giá trị tên thuộc tính bị chặn.

Lịch sử thay đổi

Bảng sau đây tóm tắt một số thay đổi quan trọng nhất đối với chủ đề này.

Ngày Mô tả
14/9/2021 Đã thêm hai bản cập nhật vào mục "Giải pháp".