May 31, 2016

SharePoint 2010/2013 - Search Service stuck at "Error Starting" OR "Error Stopping"


Problem:
We ran into an issue wherein, when users search for specific content within SharePoint, users were not able to see the SharePoint search results. This issue was global for all web applications in the farm. To resolve this issue, we checked whether "SharePoint Server Search" service under "Manage Services on Server" in Central Admin was running or stopped. Now, here we found that "SharePoint Server Search" service was stuck at "Error Starting".

To identify the exact issue, we analyzed ULS logs and we found below error in the ULS.

"The Execute method of job definition Microsoft.SharePoint.Administration.SPServiceInstanceJobDefinition (ID a41c8bc6-6ee7-4039-b171-277686fc0b96) threw an exception. More information is included below.  Unable to cast COM object of type 'Microsoft.Office.Server.Search.Administration.MSSITLB.CGatheringManagerClass' to interface type 'Microsoft.Office.Server.Search.Administration.MSSITLB.IGatherManagerAdmin3'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{0FF1CE15-013A-0000-0000-000000000000}' failed due to the following error: Error loading type library/DLL. (Exception from HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY))."

Solution: 
We tried many different ways to resolve this issue, but couldn't succeed. After some depth analysis and research, we found exact root cause of the error and solution.

Actually, Search Service is not able to locate a specific ".dll" at specified location.

Step -1: Now, let's find out what is going wrong. Copy the above highlighted GUID from your ULS log.

Step - 2: Open "regedit" from Run.

Step - 3: From the "Registry Editor" and press "Ctrl+F" and search the above highlighted GUID (This GUID is located under "HKEY_CLASSES_ROOT\Interface\").

Step - 4: Expand the Key, and select "TypeLib" and you will get something like following.

Step - 5: Note the new GUID located under "TypeLib" folder. And again search this GUID, as a result we will have same result as above, but with new GUID.

Step - 6: Now, this GUID will be something like "0FF1CE15-0001-11B0-0000-000000000000". This is the Key/GUID that holds our solution. This can be located under "HKEY_CLASSES_ROOT\TypeLib\".

Step - 7: Locate this Key/GUID ("0FF1CE15-0001-11B0-0000-000000000000") under "HKEY_CLASSES_ROOT\TypeLib\" and expand the Key. Then navigate to "1.0 > 0 > win32" and edit the below highlighted data.


Step -8: This property will have URL to "mssrch.dll" file. So update the URL with "C:\Program Files\Microsoft Office Servers\15.0\Bin\mssrch.dll\1" if you are running on SharePoint 2013 or with "C:\Program Files\Microsoft Office Servers\14.0\Bin\mssrch.dll\1" if you are running on SharePoint 2010.

That's it. Just delete the old search service and create the new one. Start a full crawl and we are good to go !!

If you have any questions you can reach out our SharePoint Consulting team here.

No comments:

Post a Comment