SharePoint 2010 People Search Error: DataFormWebPart.PrepareAndPerformTransform

Here are the error messages I had with this particular problem.

1. People search (a search page with People Search Box web part and People Search Core Result web part) returns the following error:

Internal server error exception: System.Threading.ThreadAbortException: Thread was being aborted.
at Microsoft.SharePoint.WebPartPages.DataFormWebPart.PrepareAndPerformTransform(Boolean bDeferExecuteTransform)
at Microsoft.SharePoint.WebPartPages.DataFormWebPart.PerformSelect()
at Microsoft.SharePoint.WebPartPages.DataFormWebPart.DataBind()
at Microsoft.SharePoint.WebPartPages.DataFormWebPart.EnsureDataBound()
at Microsoft.SharePoint.WebPartPages.DataFormWebPart.CreateChildControls()
at Microsoft.Office.Server.Search.WebControls.SearchResultsBaseWebPart.CreateChildControls()
at Microsoft.Office.Server.Search.WebControls.CoreResultsWebPart.CreateChildControls()

2. Content search (a search page with Search Box web part and Search Core Result web part) returns the following error:

Internal server error exception: Microsoft.SharePoint.SPEndpointAddressNotFoundException: There are no addresses available for this application.
at Microsoft.SharePoint.SPRoundRobinServiceLoadBalancer.BeginOperation()
at Microsoft.Office.Server.Search.Administration.SearchServiceApplicationProxy.DoSpLoadBalancedUriWsOp[T](WebServiceBackedOperation`1 webServiceCall, Int32 timeoutInMilliseconds, Int32 wcfTimeoutInMilliseconds, String operationName)
at Microsoft.Office.Server.Search.Administration.SearchServiceApplicationProxy.DoWebServiceBackedOperation[T](String operationName, Int32 timeoutInMilliseconds, Int32 wcfTimeoutInMilliseconds, WebServiceBackedOperation`1 webServiceCall)
at Microsoft.Office.Server.Search.Administration.SearchServiceApplicationProxy.Execute(QueryProperties properties)
at Microsoft.Office.Server.Search.Query.Query.Execute()
at Microsoft.Office.Server.Search.Query.SharePointSearchRuntime.GetQueryResult(String query)
at Microsoft.Office.Server.Search.Query.SharePointSearchRuntime.SendRequest(String query) Microsoft.SharePoint.SPEndpointAddressNotFoundException: There are no addresses available for this application.
at Microsoft.SharePoint.SPRoundRobinServiceLoadBalancer.BeginOperation()
at Microsoft.Office.Server.Search.Administration.SearchServiceApplicationProxy.DoSpLoadBalancedUriWsOp[T](WebServiceBackedOperation`1 webServiceCall, Int32 timeoutInMilliseconds, Int32 wcfTimeoutInMilliseconds, String operationName)
at Microsoft.Office.Server.Search.Administration.SearchServiceApplicationProxy.DoWebServiceBackedOperation[T](String operationName, Int32 timeoutInMilliseconds, Int32 wcfTimeoutInMilliseconds, WebServiceBackedOperation`1 webServiceCall)
at Microsoft.Office.Server.Search.Administration.SearchServiceApplicationProxy.Execute(QueryProperties properties)
at Microsoft.Office.Server.Search.Query.Query.Execute()
at Microsoft.Office.Server.Search.Query.SharePointSearchRuntime.GetQueryResult(String query)
at Microsoft.Office.Server.Search.Query.SharePointSearchRuntime.SendRequest(String query)

At this point, you might have went through plenty of blogs and articles about how to configure People Search in SharePoint 2010, where you have made sure the following, but feel something is still missing…

  • SharePoint Server Search  is up and running
  • Search Service Application created and started
  • User Profile Service Application created and started
  • sps3://siteURL added in one of the content source and full crawl performed
  • User Prolfile Synchronization Timer Job up and running

Well, in my case, it is the “Search Query and Site Settings Service” that was not started. You can look at this service as the Query Processor. You may have spent so much time solving errors in crawl logs and having a satisfying 200 GB index files, but without this service, it would be like owning a national library, but have no librarians to serve and lend the books to customers.

If you have multiple search/query/application servers in the farm, make sure the “Search Query and Site Settings Service” is started on the “Query Server” . Back in MOSS time, you have those 2 checkboxes where you can select the role of server (index or query), where in  In SharePoint 2010, you do this through Search Service Application…

  1. Go to SharePoint Central Admin site –> Application Management –> Manage service applications –> Search Service Application (or the name of your search service application)
  2. On search administration page, scroll down to “Search Application Topology” section
  3. Here you will see a few ‘categories’
    image
    - Crawl Component = Index server
    - Query Component = Query server

For more information about SharePoint 2010 Search Query architecture, see https://blogs.msdn.com/b/russmax/archive/2010/04/23/search-2010-architecture-and-scale-part-2-query.aspx

 

- Allen