SharePoint health analyzer has detected some important issues. One of them is:
As an administrator, how can I know where this WebPart is used? Google found two useful ways.
1. Use stsadm to find the webpart reference status.
stsadm -o enumallwebs -includewebparts >c:\temp\somelog.txt
In the returned xml results, you can see the webpart nodes under each web.
<Databases> <Database 。。。> <Site Id="76754f86-f517-4d46-8331-58378678401f" 。。。> <Webs Count="50"> <Web Id="ef027756-f112-4765-a5b8-d5a13c1b7417" Url="/" LanguageId="2052" TemplateName="STS#0" TemplateId="1"> <WebParts> <WebPart Id="baf5274e-a800-8dc3-96d0-0003d9405663" Count="20" Status="Missing SafeControls entry" Type="Microsoft.SharePoint.WebPartPages.ListViewWebPart" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" /> <WebPart 。。。。 </WebParts> </Web>。。。
You can find the cause of the error. Even if it appears in a very deep sub-website, you can find it.
2. search through the database directly. Timerjob used to check for errors actually runs such a query on the corresponding content database:
SELECT tp_WebPartTypeId, COUNT(1), tp_Assembly, tp_ClassFROM AllWebParts (NOLOCK)WHERE tp_WebPartTypeId IS NOT NULL GROUP BY tp_WebPartTypeId, tp_Assembly, tp_Class
Use the WebPartTypeId provided by the error message for the following query:
SELECT *FROM AllWebPartsWHERE tp_WebPartTypeId = 'b82a8e9d-8706-3252-0a3b-ba19bf65e250'
The SiteId is found in the result.
This table also has some other information for troubleshooting. The commonly used tables and their relationships are as follows:
SELECT Webs. FullUrl, Webs. Title, AllDocs. DirName, AllDocs. LeafName
FROM AllDocs, Sites, AllWebParts, Webs
WHERE Webs. Id = Sites. RootWebId AND AllDocs. Id = AllWebParts. tp_PageUrlID
AND Sites. Id = AllDocs. SiteId
References
Missing Server Side Dependencies-8d6034c4-a416-e535-281a-6b714894e1aa
How to find missing web part?