Errore "Tipo non risolvibile" quando si usa una soluzione sandbox o una web part (KB5015556)

Si applica a
SharePoint Foundation 2013 SP1 SharePoint Server 2016

Sintomi

Quando si usa una soluzione sandbox o una web part, è possibile che vengano visualizzati messaggi di errore simili ai seguenti nei log del sistema di registrazione unificato di SharePoint. Questi messaggi indicano che alcune soluzioni sandbox o web part sono bloccate.

Per SharePoint Foundation 2013 e SharePoint Enterprise Server 2016 con l'aggiornamento della sicurezza di maggio 2022 installato:

ID evento Messaggio
ajrme Nota: Chiamata ExecuteRequestInSandBox non riuscita. System.ArgumentException: Type was not resolvable at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName)
at
…...
ajlz0 Nota: Messaggio di errore relativo a Exception System.ArgumentException: Type was not resolvable at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName)
at
…...

Per SharePoint Foundation 2013 con l'aggiornamento della sicurezza di giugno 2022 o un aggiornamento della sicurezza successivo installato e per SharePoint Enterprise Server 2016 con l'aggiornamento della sicurezza di luglio 2022 o un aggiornamento della sicurezza successivo installato:

ID evento Messaggio
6k389 Nota: Tipo non valido: type=XXXXX; assembly=YYYYY, in SPUserCodeSerializationBinder. Visitare https://go.microsoft.com/fwlink/?LinkId=2196531 per altre informazioni e per informazioni su come risolvere l'errore.
ajrme Nota: Chiamata ExecuteRequestInSandBox non riuscita. System.ArgumentException: Type was not resolvable at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName)
at
…...
ajlz0 Nota: Messaggio di errore relativo a Exception System.ArgumentException: Type was not resolvable at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName)
at
…...

Causa

A partire dall'aggiornamento della sicurezza di maggio 2022, il servizio sandbox di SharePoint limita ulteriormente i tipi e gli assembly che consente di essere eseguiti per impostazione predefinita.

Risoluzione

Per risolvere il problema, è necessario registrare i tipi o gli assembly di terze parti consentiti dal servizio sandbox di SharePoint. A questo scopo, procedere come segue:

  1. Per SharePoint Foundation 2013, installare l'aggiornamento della sicurezza di giugno 2022 o un aggiornamento della sicurezza successivo. Per SharePoint Enterprise Server 2016, installare l'aggiornamento della sicurezza di luglio 2022 o un aggiornamento della sicurezza successivo.

  2. Usare la soluzione sandbox o la web part interessato per attivare il problema.

  3. Aprire il log ULS di SharePoint e cercare l'ID evento "6K389". Verrà visualizzato il messaggio seguente con l'ID evento:

    Nota

    Tipo non valido: type=XXXXX; assembly=YYYYY in SPUserCodeSerializationBinder. Visitare https://go.microsoft.com/fwlink/?LinkId=2196531 per altre informazioni e per informazioni su come risolvere l'errore.

  4. Si noti i tipi e gli assembly bloccati.

  5. Aprire il file web.config dell'applicazione Web in cui si trovano le soluzioni Sandbox o le web part. Il percorso del web.config sarà in genere simile al seguente:

    C:\inetpub\wwwroot\wss\VirtualDirectories\<web application port>

  6. Aggiungere un elemento AllowedListItems nella sezione configuration/SharePoint/SafeMode.

  7. All'interno dell'elemento AllowedListItems aggiungere un elemento AllowedItem con l'attributo Name impostato su AllowedSandboxType nel formato seguente:

  • Per sbloccare tipi specifici, aggiungere elementi con la proprietà Type come segue:

    <AllowedItem Name="AllowedSandboxType" Type="XXXXX"/>

  • Per sbloccare assembly specifici, aggiungere elementi con la proprietà Assembly nel modo seguente:

    <AllowedItem Name="AllowedSandboxType" Assembly="YYYYY"/>

Ecco un esempio:

<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>