Ознаки
Після інсталяції одного з наведених нижче оновлень деякі перевірені сторінки в Microsoft SharePoint не відтворюються:
-
Оновлення для SharePoint Server 2019 (KB4461512) від 21 вересня 2020 р. (KB4461512)
-
SharePoint Enterprise Server 2016: 8 вересня 2020 р. (KB 4484506)
-
SharePoint Foundation 2013 від 8 вересня 2020 р. (KB 4484525)
Наприклад, сторінки порталу Microsoft Identity Manager (MIM) і деякі настроювані сторінки, розгорнуті за допомогою рішення SharePoint, не відтворюються.
Крім того, може виникнути одна або кілька з наведених нижче сценаріїв.
Сценарій 1
На заблокованій сторінці відображається одне з таких повідомлень про помилку:
-
Атрибут "autoeventwireup" заборонено на цій сторінці.
-
Атрибут "enablesessionstate" заборонено на цій сторінці.
-
У цьому файлі блоки кодів заборонено.
-
На цій сторінці не можна використовувати обробник подій OnSelectedIndexChanged.
Примітка Подія в останньому повідомленні про помилку також може бути іншою подією, наприклад "OnClick".
Сценарій 2
На заблокованій сторінці відображається таке повідомлення про помилку:
UnsafeControlException: Веб-частина або елемент керування веб-форм на цій сторінці не можна відобразити або імпортувати. Не вдалося знайти тип або його не зареєстровано як безпечний.
Сценарій 3
На заблокованій сторінці відображається таке повідомлення про помилку:
На цій сторінці не можна використовувати _layouts/somedirectory/affectedusercontrol.ascx файл '/_layouts/somedirectory/affectedusercontrol.ascx'.
Причина
Перегнащені сторінки зберігаються у файлову систему. Їхній рівень безпеки покращено забороняти сценарії на сервері та небезпечні елементи керування. Якщо виконуються такі умови, можливо, заблоковано відтворення заблокованої сторінки.
-
Сторінка зі знімком сторінки містить вбудований код або сценарій на боці сервера.
-
Тип або веб-частина, що відставають від коду, не зареєстровано як безпечні.
Вирішення сценарію 1
Щоб вирішити цю проблему, додайте новий елемент PageParserPath, атрибут VirtualPath до файлу Web.config конфігурації/SharePoint/SafeMode/PageParserPaths.
Наприклад, з'являється таке повідомлення про помилку:
"На цій сторінці не можна використовувати атрибут "autoeventwireup".
У цьому випадку ви можете додати елемент PageParserPath таким чином:
<SafeMode MaxControls="200" CallStack="false" DirectFileDependencies="15" TotalFileDependencies="250" AllowPageLevelTrace="false">
<PageParserPaths>
<PageParserPath VirtualPath="/<relativepath>/page.aspx" CompilationMode="Always" AllowServerSideScript="true" AllowUnsafeControls="true"/>
</PageParserPaths>
</SafeMode>
Якщо всі сторінки в одному віртуальному каталозі потрібно розблокувати, можна використати елемент PageParserPath, як показано нижче.
<SafeMode MaxControls="200" CallStack="false" DirectFileDependencies="15" TotalFileDependencies="250" AllowPageLevelTrace="false">
<PageParserPaths>
<PageParserPath VirtualPath="/<relativepath>/*" CompilationMode="Always" AllowServerSideScript="true" AllowUnsafeControls="true" IncludeSubFolders="True"/>
</PageParserPaths>
</SafeMode>
-
VirtualPath – це шлях до заблокованої сторінки.
-
Віртуальнийpath має посилатися на сторінку, яка прикріпилася, і відкріпити ні користувачем, ні каталог, який містить таку сторінку.
-
Віртуальнийpath має посилатися на сторінку, яка не посилається на іншу сторінку чи головну сторінку, яку можна відстикувати, або каталог, що не містить такої сторінки чи головної сторінки.
-
DirectFileDependencies вказує на кількість дозволених прямих залежностей файлів. Якщо з'явиться повідомлення про помилку "кількість дозволених прямих залежностей файлів перевищує обмеження", змініть це значення.
Вирішення сценарію 2
Щоб вирішити цю проблему, додайте новий елемент SafeControls для заданого типу, простору імен і складного імені у файлі Web.config під елементом configuration/SharePoint/SafeControls, як описано в статті Елемент SafeControls (рішення). Потім для атрибута Safe установіть значенняTRUE.
Докладні відомості про формат значень атрибута в елементі SafeControls див. в таблиці на кроці 12 у розділі "Позначення безпечних елементів керування в конструкторі пакетів" статті Позначення елементів керування як безпечних елементів керування.
Вирішення сценарію 3
Щоб вирішити цю проблему, додайте новий елемент SafeControls, який використовує атрибут Src у Web.config за конфігурацією/ елементом SharePoint/SafeControls.
Наприклад, з'являється таке повідомлення про помилку:
"На цій сторінці не можна використовувати файл, на який посилається файл '/_layouts/somedirectory/affectedusercontrol.ascx''.
У цьому випадку можна додати елемент SafeControls, як показано в наведених нижче прикладах.
< SafeControls>
<SafeControl Src="~/_layouts/somedirectory/*" IncludeSubFolders="True" Safe="True" AllowRemoteDesigner="True" SafeAgainstScript="True" />
</SafeControls>
< SafeControls> <SafeControl Src="~/_layouts/somedirectory/*" IncludeSubFolders="True" Safe="True" /> </SafeControls>