徵兆
依存於 WPProperty 的 Web 組件可能無法正常運作,並在 SharePoint 統一登入系統 (ULS) 記錄中產生 a7wm1 事件標記。
原因
發生此問題的原因是 SharePoint Server 現在要求伺服器陣列宣告允許在 web.config 檔案中存取 WPProperty 的 .NET 類型。 作為安全性防範措施,未列出的 .NET 類型無法存取 WPProperty 。
解決方案
若要解決這個問題,請安裝下列更新之一:
-
SharePoint Enterprise Server 2016 的安全性更新說明:2021 年 6 月 8 日 (KB5001946)
-
SharePoint Foundation 2013 的安全性更新說明:2021 年 9 月 14 日 (KB5002024)
若要使 Web 組件按預期正常運作,請執行下列步驟,宣告允許受影響的 .NET 類型存取 web.config 檔案中的 WPProperty。
重要: 只有在確認 NET 類型安全之後,才可允許其存取 WPProperty。
-
在 SharePoint 伺服器陣列中的各個伺服器中,打開您網頁應用程式的 web.config 檔案。
-
尋找 configuration/SharePoint/SafeMode 區段。
-
如果不存在 AllowedWPProperties 區段,請新增該區段。
-
新增具有 type 和 propertyName 屬性的新 AllowedWPProperty 元素,以代表應允許存取 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> -
將此變更儲存到 web.config 檔案。
若要識別 type 和 propertyName 屬性的正確數值,請查詢 a7wm1 事件標記的 ULS 記錄,並記下記錄項目。 例如:
"WPProperty has been blocked for security reason. blocked AssemblyQualifiedName is "<BlockedWPPropertyTypeName>, <allowedWPPropertyAssemblyName>, <AssemblyVersion>, <AssemblyLanguageSetting>, <AssemblyPublicKey>" | blocked property name is "<blocked WPProperty name>",
若要允許此類型可存取 WPProperty,請將 AllowedWPPProperty 的 type 屬性設定為封鎖的 AssemblyQualifiedName 值,然後將 propertyName 屬性設定為封鎖的屬性名稱值。
變更歷程記錄
下表摘要說明本主題的一些最重要變更。
日期 |
描述 |
---|---|
2021 年 9 月 14 日 |
在「方案」部分新增了兩個更新。 |