Помилка "Тип не можна вирішити" під час використання рішення для ізольованого програмного середовища або веб-частини (KB5015556)

Застосовується до
SharePoint Foundation 2013 SP1 SharePoint Server 2016

Ознаки

Коли використовується рішення для ізольованого програмного середовища або веб-частини, можуть з'являтися повідомлення про помилки, схожі на наведені нижче в журналах системи уніфікованого журналювання (ULS) SharePoint: Ці повідомлення вказують на блокування деяких рішень для ізольованого програмного середовища або веб-частин.

Для SharePoint Foundation 2013 і SharePoint Enterprise Server 2016 з інстальованим оновленням системи безпеки за травень 2022 р. виконайте наведені нижче дії.

Ідентифікатор події Повідомлення
ajrme Примітка. Не вдалося здійснити виклик ExecuteRequestInSandBox. System.ArgumentException: Type was not resolvable at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName)
at
…...
ajlz0 Примітка. Отримання повідомлення про помилку винятку System.ArgumentException: Type was not resolvable at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName)
at
…...

Для SharePoint Foundation 2013 з інстальованим оновленням системи безпеки за червень 2022 р. або пізнішим оновленням і для SharePoint Enterprise Server 2016 з інстальованим оновленням системи безпеки за липень 2022 р. або пізнішим оновленням:

Ідентифікатор події Повідомлення
6к389 Примітка. Неприпустимий тип: type=XXXXX; assembly=YYYYY, в SPUserCodeSerializationBinder. Відвідайте веб-сторінку https://go.microsoft.com/fwlink/?LinkId=2196531, щоб дізнатися більше та дізнатися, як виправити цю помилку.
ajrme Примітка. Не вдалося здійснити виклик ExecuteRequestInSandBox. System.ArgumentException: Type was not resolvable at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName)
at
…...
ajlz0 Примітка. Отримання повідомлення про помилку винятку System.ArgumentException: Type was not resolvable at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName)
at
…...

Причина

Починаючи з оновлення системи безпеки за травень 2022 року, служба ізольованого програмного середовища SharePoint додатково обмежує типи та збірки, які вона дозволяє запускати за замовчуванням.

Спосіб усунення проблеми

Щоб вирішити цю проблему, потрібно зареєструвати типи або збірки сторонніх розробників, які дозволено використовувати служба ізольованого програмного середовища SharePoint. Ось як це зробити:

  1. Для SharePoint Foundation 2013 інсталюйте оновлення системи безпеки за червень 2022 р. або пізніші оновлення. Для SharePoint Enterprise Server 2016 інсталюйте оновлення системи безпеки за липень 2022 р. або пізнішу версію.

  2. Щоб ініціювати проблему, використовуйте рішення або веб-частину, що зазнала впливу.

  3. Відкрийте журнал SharePoint ULS і знайдіть ідентифікатор події 6K389. З'явиться таке повідомлення з ідентифікатором події:

    Примітка.

    Неприпустимий тип: type=XXXXX; assembly=YYYYY в SPUserCodeSerializationBinder. Відвідайте веб-сторінку https://go.microsoft.com/fwlink/?LinkId=2196531, щоб дізнатися більше та дізнатися, як виправити цю помилку.

  4. Зверніть увагу на заблоковані типи та збірки.

  5. Відкрийте web.config файл веб-програми, де розміщено рішення для ізольованого програмного середовища або веб-частини. Шлях web.config зазвичай має такий вигляд:

    C:\inetpub\wwwroot\wss\VirtualDirectories\<порт веб-програми>

  6. Додайте елемент AllowedListItems у розділі конфігурації/SharePoint/SafeMode.

  7. Всередині елемента 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>