Como remover correctamente uma pesquisa filtro de segurança (ISecurityTrimmer2)
-
10-12-2019 - |
Pergunta
Eu criei uma forma muito simples de implementação de ISecurityTrimmer2 no SharePoint 2010.Registrou, e tudo funcionou como o esperado.
Eu removido usando o PowerShell a seguir:
$searchApp = Get-SPEnterpriseSearchServiceApplication "Search Service Application"
$trimmer = $searchApp | Get-SPEnterpriseSearchSecurityTrimmer
$trimmer | Remove-SPEnterpriseSearchSecurityTrimmer -SearchApplication "Search Service Application"
Powershell me avisa que ele está ignorando o parâmetro extra -SearchApplication, mas o comando não funciona sem ele.Tenho verificado que o Get-SPEnterpriseSecurityTrimmer não retorna nenhum resultado.
Eu estou começando agora não há resultados de pesquisa, com o seguinte erro na ULS do Processador de consultas:
Error occurred when executing pluggable security trimmer with Id 1 System.InvalidOperationException: Could not find Pluggable Security Trimmer with Id '1'.
at Microsoft.Office.Server.Search.Administration.Security.PluggableSecurityTrimmerManager.Instantiate(Int32 idRequested)
at Microsoft.Office.Server.Search.Administration.Security.PluggableSecurityTrimmerManager.GetPluggableSecurityTrimmer(Int32 id)
at Microsoft.Office.Server.Search.Query.PluggableSecurityTrimmer.Trim(UInt32[] docIds, Boolean[] displayDoc, UInt32 oldScannedCount, UInt32 logicalStartPosition, UInt32 desiredResultCount)
Eu fiz iisreset
e ainda obter o mesmo erro.Obviamente, ele não está lá, mas porque é o Processador de consultas ainda olhando para ele, e como posso removê-lo totalmente?
Solução
Aparentemente fazendo uma nova pesquisa completa corrige-lo.
Eu encontrei uma explicação nos comentários este artigo sobre 2013 Pós-aparadores por Sveinar Rasmussen
A razão para o completo inicial o rastreamento é que o conteúdo de objetos (documentos), necessitam de ser associados com o registrado aparador.Ele vai colocar um ID de número inteiro sobre aqueles que correspondem a regra de rastreamento.Uma vez que o conteúdo é "marcado" com um pós-aparador, o pós-aparador é invocado.E quaisquer alterações subsequentes para o aparador lógica não requer quaisquer rastreamentos depois que, desde como você não está registrando novamente aparadores.
Na minha experiência, se você quer fazer algo que invovles alterar o nome forte do filtro de segurança (por exemplo,alterando a versão do assembly), você pode removê-lo e adicioná-lo novamente com o mesmo ID sem a necessidade de um rastreamento completo.Em 2013, este também necessita de um reinício do serviço de Controlador de Host de Pesquisa.