Проблема
При использовании решения или веб-части песочницы в журналах единой системы ведения журнала SharePoint (ULS) могут отображаться сообщения об ошибках, аналогичные приведенным ниже. Эти сообщения указывают, что некоторые решения песочницы или веб-части заблокированы.
Для SharePoint Foundation 2013 и SharePoint Enterprise Server 2016 с установленным обновлением для системы безопасности за май 2022 г.
| Идентификатор события | Сообщение |
|---|---|
| ajrme |
Примечание: Сбой вызова ExecuteRequestInSandBox. System.ArgumentException: Тип не разрешался в Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) at …... |
| ajlz0 |
Примечание: Получение сообщения об ошибке для Exception System.ArgumentException: Тип не удалось разрешить в Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) at …... |
Для 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) at …... |
| ajlz0 |
Примечание: Получение сообщения об ошибке для Exception System.ArgumentException: Тип не удалось разрешить в Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) at …... |
Причина
Начиная с обновления системы безопасности за май 2022 г. служба песочницы SharePoint еще больше ограничивает типы и сборки, которые она позволяет запускать по умолчанию.
Решение
Чтобы устранить эту проблему, необходимо зарегистрировать сторонние типы или сборки, которые будет выполнять служба песочницы SharePoint. Для этого выполните указанные ниже действия.
Для SharePoint Foundation 2013 установите обновление для системы безопасности за июнь 2022 г. или более поздней версии. Для SharePoint Enterprise Server 2016 установите обновление для системы безопасности за июль 2022 г. или более позднюю версию.
Используйте затронутое решение песочницы или веб-часть для активации проблемы.
Откройте журнал SharePoint ULS и найдите идентификатор события "6K389". Вы увидите следующее сообщение с идентификатором этого события:
Примечание
Недопустимый тип: type=XXXXX; assembly=YYYYy in SPUserCodeSerializationBinder. Дополнительные сведения и сведения об устранении этой ошибки см. на https://go.microsoft.com/fwlink/?LinkId=2196531.
Обратите внимание на типы и сборки, которые блокируются.
Откройте файл web.config веб-приложения, в котором находятся решения песочницы или веб-части. Путь к web.config обычно выглядит следующим образом:
C:\inetpub\wwwroot\wss\VirtualDirectories\<web application port>
Добавьте элемент AllowedListItems в раздел configuration/SharePoint/SafeMode.
Внутри элемента AllowedListItems добавьте элемент AllowedItem с атрибутомName , равным AllowedSandboxType в следующем формате:
Чтобы разблокировать определенные типы, добавьте элементы со свойством Type следующим образом:
<AllowedItem Name="AllowedSandboxType" Type="XXXXX"/>
Чтобы разблокировать определенные сборки, добавьте элементы со свойством Assembly следующим образом:
<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>