【问题标题】:Search broken in SharePoint 2010SharePoint 2010 中的搜索中断
【发布时间】:2014-11-06 13:42:02
【问题描述】:

无论是使用普通页面上的搜索框还是仅加载高级搜索页面,SharePoint 中的搜索都会引发错误 NullReferenceException

我最初在尝试搜索时在 SharePoint ULS 日志中收到 System.ServiceModel.ServerTooBusyException 和循环服务负载均衡器 EndpointFailure 错误。我检查了 IIS 并确定 Web 应用程序存在。我停止并启动了服务器上的搜索查询和站点设置服务。那是我最后一次看到 EndpointFailureServerTooBusyException 错误。

但是,出现了一个新错误。这次是System.NullReferenceException 来自SetPropertiesOnQueryReader() CoreResultsWebPart.OnInit()。知识库文章 976462 看起来很有希望,直到进一步的研究表明它在 SecurityBindingElement 类中添加了 AllowInsecureTransport 属性,并更改了默认值 False正确。但是,此属性存在并且在我的环境中已设置为 True

我找到了 this same problem,但是删除 Search Service 应用程序和代理、重新创建它们并执行 IISRESET 并没有解决我的问题。

当高级企业搜索页面打开时,屏幕上会返回一个错误:Object reference not set to an instance of an object

这是来自 ULS 的日志条目:

CoreResultsWebPart::OnInit:异常初始化:System.NullReferenceException:对象引用未设置为对象的实例。在 Microsoft.Office.Server.Search.WebControls.CoreResultsWebPart.SetPropertiesOnQueryReader() 在 Microsoft.Office.Server.Search.WebControls.CoreResultsWebPart.OnInit(EventArgs e)

内部服务器错误异常:System.NullReferenceException:对象引用未设置为对象的实例。在 Microsoft.Office.Server.Search.WebControls.CoreResultsWebPart.SetPropertiesOnQueryReader() 在 Microsoft.Office.Server.Search.WebControls.CoreResultsWebPart.OnInit(EventArgs e) System.NullReferenceException:对象引用未设置为对象的实例。在 Microsoft.Office.Server.Search.WebControls.CoreResultsWebPart.SetPropertiesOnQueryReader() 在 Microsoft.Office.Server.Search.WebControls.CoreResultsWebPart.OnInit(EventArgs e)

【问题讨论】:

  • 属于SharePoint,不是吗?
  • 有 3,294 个问题标记为 SharePoint2010。你投票决定关闭它们吗?
  • 我不愿意结束这个问题,但建议 modos 将其 迁移SharePoint,因为我相信这是正确的地方(我实际上不是在判断问题质量)。是的,每次我看到特定于 SP 的问题时,我都会这样做。你是不是觉得我有点疯子?

标签: sharepoint-2010


【解决方案1】:

您能看看您的搜索拓扑吗?检查以下组件的状态:

  • 管理组件
  • 爬取组件
  • 查询组件

它应该是在线的。如果不是,请单击修改拓扑并重新配置它。

导航到centraladmin:port/_admin/FarmServers.aspx,并检查您的服务器的状态。它应该对所有服务器显示无需操作 - 如果显示需要升级,则根据您的 SP 服务器在 WFE 和应用服务器上运行产品和配置向导。 p>

您的配置数据库中可能有一些恶意条目可能会导致此问题。由于您已经重新配置了搜索,因此可能存在一些导致问题的孤立数据库。导航到centraladmin:port/_admin/databaseStatus.aspx。如果您在这里没有看到旧的孤立搜索数据库,请删除搜索服务应用程序,再次访问上述 URL 并检查是否存在。如果是,则运行以下 PowerShell 命令以删除孤立 DB:

$orphanedDB = Get-SPDatabase | where{$_.Name -eq "MySearchDatabase"}
$orphanedDB.Delete()

【讨论】:

    【解决方案2】:

    我遇到了类似的问题,并按照 Vinod 的回答注意到搜索管理中的“搜索警报状态”已被禁用(我打算这样做)。启用它解决了这个问题,这意味着搜索页面现在呈现。然后我能够再次禁用“搜索警报状态”,页面继续正常工作。

    希望这可以在其他人按照网络上其他地方的建议重置/重新启动服务之前对其有所帮助。

    【讨论】:

      【解决方案3】:

      我遇到了同样的错误,重新启动 SharePoint 服务器解决了我的问题。

      【讨论】:

        【解决方案4】:

        我刚刚遇到了同样的问题,并通过以下方式解决了它:

        1. 我验证了 SharePoint Web Services 站点存在于 IIS 中,并且 SecurityTokenServiceApplication 作为虚拟目录存在。
        2. 就我而言,我发现为其提供动力的应用程序池由于信用不良而停止。我修正了信用,反弹了池,并反弹了网站。
        3. 那仍然没有解决问题,所以我进入 Sharepoint Central Admin,转到应用程序管理 -> 管理服务应用程序。
        4. 我点击了 Search Service Application 并为我的本地网站创建了一个新的爬网,并做了一个完整的索引。
        5. 最后,我点击了搜索应用拓扑中的所有部分,没有进行任何更改,但完成后应用的拓扑发生了变化。

        这种组合为我解决了问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-03-13
          • 1970-01-01
          • 1970-01-01
          • 2011-12-17
          • 1970-01-01
          • 2011-08-04
          • 2012-01-28
          相关资源
          最近更新 更多