Sintomi
Quando si utilizza una soluzione sandbox o una web part, è possibile che vengano visualizzati messaggi di errore simili ai seguenti nei log di SharePoint UNIFIED Logging System (ULS). 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 |
Chiamata ExecuteRequestInSandBox non riuscita. System.ArgumentException: Type non è stato risolvibile in Microsoft. SharePoint. UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) |
ajlz0 |
Recupero del messaggio di errore per Exception System.ArgumentException: Type non è stato risolvibile in Microsoft. SharePoint. UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) |
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 |
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 |
Chiamata ExecuteRequestInSandBox non riuscita. System.ArgumentException: Type non è stato risolvibile in Microsoft. SharePoint. UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) |
ajlz0 |
Recupero del messaggio di errore per Exception System.ArgumentException: Type non è stato risolvibile in Microsoft. SharePoint. UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) |
Causa
A partire dall'aggiornamento della sicurezza di maggio 2022, il servizio sandbox SharePoint limita ulteriormente i tipi e gli assembly che consente di essere eseguiti per impostazione predefinita.
Risoluzione
Per risolvere questo problema, è necessario registrare i tipi o gli assembly di terze parti che il servizio sandbox SharePoint consentirà di eseguire. A tal fine, attenersi alla seguente procedura:
-
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.
-
Usare la soluzione sandbox o la web part interessato per attivare il problema.
-
Aprire la SharePoint registro ULS e cercare l'ID evento "6K389". Verrà visualizzato il messaggio seguente con l'ID evento:
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.
-
Si noti i tipi e gli assembly bloccati.
-
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\<porta applicazione Web> -
Aggiungere un elemento AllowedListItems nella sezione configuration/SharePoint/SafeMode.
-
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 indicato di seguito:
<AllowedItem Name="AllowedSandboxType" Type="XXXXX"/> -
Per sbloccare assembly specifici, aggiungere elementi con la proprietà Assembly come indicato di seguito:
<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>