我在SharePoint2010中创建了一个非常简单的ISecurityTrimmer2实现。注册了它,一切都按预期工作。

我使用以下PowerShell删除了它:

$searchApp = Get-SPEnterpriseSearchServiceApplication "Search Service Application"
$trimmer = $searchApp | Get-SPEnterpriseSearchSecurityTrimmer
$trimmer | Remove-SPEnterpriseSearchSecurityTrimmer -SearchApplication "Search Service Application"

Powershell警告我,它忽略了额外的参数-SearchApplication,但该命令没有它就无法工作。我已经验证了Get-SPEnterpriseSecurityTrimmer没有返回任何结果。

我现在没有得到任何搜索结果,在查询处理器的ULS中出现以下错误:

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)

我已经做到了 iisreset 并且仍然得到相同的错误。显然它不在那里,但为什么查询处理器仍然在寻找它,我怎样才能完全删除它?

有帮助吗?

解决方案

显然,做一个新的完全爬行修复它。

我在评论中找到了解释 关于这篇文章2013后修剪器 由 斯维纳尔*拉斯穆森

初始满的原因 抓取是内容对象(文档)需要关联 用注册的修剪器。它将把一个整数ID放在那些 匹配爬网规则。一旦内容被"标记"与 后修整器,所述后修整器被调用。及任何后续更改 到微调逻辑将不需要任何抓取之后,只要 因为你没有重新注册修剪器。

根据我的经验,如果你想做一些改变安全修整器的强名称的事情(例如更改程序集版本),您可以删除它并使用相同的ID重新添加它,而无需完全爬网。仅在2013上,这还需要重新启动搜索主机控制器服务。

许可以下: CC-BY-SA归因
scroll top