Symptômes
Lorsque vous utilisez une solution bac à sable ou un composant WebPart, vous pouvez recevoir les messages d’erreur similaires à ceux ci-dessous dans les journaux du service ULS (Unified Logging System) de SharePoint. Ces messages indiquent que certaines solutions bac à sable ou composants WebPart sont bloqués.
Pour SharePoint Foundation 2013 et SharePoint Enterprise Server 2016 avec la mise à jour de sécurité de mai 2022 installée :
ID d’événement |
Message |
ajrme |
L’appel ExecuteRequestInSandBox a échoué. System.ArgumentException : impossible de résoudre le type à Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType (String assemblyName, String typeName) |
ajlz0 |
Obtention d’un message d’erreur pour l’exception System.ArgumentException : impossible de résoudre le type à Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType (String assemblyName, String typeName) |
Pour SharePoint Foundation 2013 avec la mise à jour de sécurité de juin 2022 ou une mise à jour de sécurité ultérieure installée et pour SharePoint Enterprise Server 2016 avec la mise à jour de sécurité de juillet 2022 ou une mise à jour de sécurité ultérieure installée :
ID d’événement |
Message |
6k389 |
Type non valide : type=XXXXX ; assembly=YYYYY, dans SPUserCodeSerializationBinder. Pour plus d’informations sur la résolution de cette erreur, consultez l’article https://go.microsoft.com/fwlink/?LinkId=2196531. |
ajrme |
L’appel ExecuteRequestInSandBox a échoué. System.ArgumentException : impossible de résoudre le type à Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType (String assemblyName, String typeName) |
ajlz0 |
Obtention d’un message d’erreur pour l’exception System.ArgumentException : impossible de résoudre le type à Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType (String assemblyName, String typeName) |
Cause
À partir de la mise à jour de sécurité de mai 2022, le service de bac à sable SharePoint restreint davantage les types et les assemblys qu’il autorise à être exécutés par défaut.
Résolution
Pour résoudre ce problème, vous devez enregistrer les types ou les assemblys de tiers que le service bac à sable SharePoint autorisera à être exécutés. Pour cela, procédez comme suit :
-
Pour SharePoint Foundation 2013, installez la mise à jour de sécurité de juin 2022 ou une mise à jour de sécurité ultérieure. Pour SharePoint Enterprise Server 2016, installez la mise à jour de sécurité de juillet 2022 ou une mise à jour de sécurité ultérieure.
-
Utilisez la solution bac à sable ou le composant WebPart concerné pour déclencher le problème.
-
Ouvrez le journal du service ULS de SharePoint et recherchez l’ID d’événement « 6K389 ». Vous trouverez le message suivant sous cet ID d'événement :
Type non valide : type=XXXXX ; assembly=YYYYY dans SPUserCodeSerializationBinder. Pour plus d’informations sur la résolution de cette erreur, consultez l’article https://go.microsoft.com/fwlink/?LinkId=2196531.
-
Prenez note des types et assemblys qui sont bloqués.
-
Ouvrez le fichier web.config de l'application web où se trouvent les solutions bac à sable ou les composants WebPart. Le chemin d’accès au fichier web.config ressemble généralement à ce qui suit :
C:\inetpub\wwwroot\wss\VirtualDirectories\<web application port> -
Ajoutez un élément AllowedListItems dans la section configuration/SharePoint/SafeMode.
-
Dans l’élément AllowedListItems, ajoutez un élément AllowedItem dont l’attribut Name est défini sur AllowedSandboxType au format suivant :
-
Pour débloquer des types spécifiques, ajoutez des éléments avec la propriété Type définie comme suit :
<AllowedItem Name="AllowedSandboxType" Type="XXXXX"/> -
Pour débloquer des assemblages spécifiques, ajoutez des éléments avec la propriété Assembly comme suit :
<AllowedItem Name="AllowedSandboxType" Assembly="YYYYY"/>
Voici un exemple :
<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>