Sintomas
Quando utiliza uma solução ou peça Web sandbox, poderá receber mensagens de erro que se assemelhem ao seguinte nos registos ULS (Unified Logging System) do SharePoint. Estas mensagens indicam que algumas soluções ou peças Web do sandbox estão bloqueadas.
Para o SharePoint Foundation 2013 e o SharePoint Enterprise Server 2016 com a atualização de segurança de maio de 2022 instalada:
ID do Evento |
Mensagem |
ajrme |
A chamada executeRequestInSandBox falhou. System.ArgumentException: Type não era resolvível em Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) |
ajlz0 |
Getting Error Message for Exception System.ArgumentException: Type was not resolvable at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) |
Para o SharePoint Foundation 2013 com a atualização de segurança de junho de 2022 ou uma atualização de segurança posterior instalada e para o SharePoint Enterprise Server 2016 com a atualização de segurança de julho de 2022 ou uma atualização de segurança posterior instalada:
ID do Evento |
Mensagem |
6k389 |
Tipo inválido: type=XXXXX; assembly=YYYYY, em SPUserCodeSerializationBinder. Visite https://go.microsoft.com/fwlink/?LinkId=2196531 para obter mais informações e saber como resolver este erro. |
ajrme |
A chamada executeRequestInSandBox falhou. System.ArgumentException: Type não era resolvível em Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) |
ajlz0 |
Getting Error Message for Exception System.ArgumentException: Type was not resolvable at Microsoft.SharePoint.UserCode.SPUserCodeExecutionManager.SPUserCodeSerializationBinder.BindToType(String assemblyName, String typeName) |
Causa
A partir da atualização de segurança de maio de 2022, o serviço de sandbox do SharePoint restringe ainda mais os tipos e assemblagens que permite ser executados por predefinição.
Resolução
Para corrigir este problema, tem de registar os tipos ou assemblagens de terceiros que o serviço de sandbox do SharePoint permitirá executar. Para tal, siga estes passos:
-
Para o SharePoint Foundation 2013, instale a atualização de segurança de junho de 2022 ou uma atualização de segurança posterior. Para o SharePoint Enterprise Server 2016, instale a atualização de segurança de julho de 2022 ou uma atualização de segurança posterior.
-
Utilize a solução de sandbox ou peça Web afetada para desencadear o problema.
-
Abra o registo da ULS do SharePoint e procure o ID do evento "6K389". Encontrará a seguinte mensagem com esse ID do evento:
Tipo inválido: type=XXXXX; assembly=YYYYY no SPUserCodeSerializationBinder. Visite https://go.microsoft.com/fwlink/?LinkId=2196531 para obter mais informações e saber como resolver este erro.
-
Repare nos tipos e assemblagens que estão bloqueados.
-
Abra o ficheiro web.config da aplicação Web onde estão localizadas as Soluções ou as webparts do Sandbox. Normalmente, o caminho da web.config teria o seguinte asste:
C:\inetpub\wwwroot\wss\VirtualDirectories\<porta da aplicação Web> -
Adicione um elemento AllowedListItems na secção configuration/SharePoint/SafeMode.
-
No elemento AllowedListItems, adicione um elemento AllowedItem com o atributo Name definido para AllowedSandboxType no seguinte formato:
-
Para desbloquear tipos específicos, adicione elementos com a propriedade Tipo da seguinte forma:
<AllowedItem Name="AllowedSandboxType" Type="XXXXX"/> -
Para desbloquear assemblagens específicas, adicione elementos com a propriedade Assemblagem da seguinte forma:
<AllowedItem Name="AllowedSandboxType" Assembly="AAAAA"/>
Segue-se um exemplo:
<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>