L'errore riportato indica che in SharePoint 2010 / 2013 / 2016 non è più registrata correttamente la WebPart indicata dal guid (30B9CA5C-5DF8-472B-BF14-8C2B3A15D553) ma ci sono N riferimenti (32) nel database (SP2013_Content):
[MissingWebPart] WebPart class [30B9CA5C-5DF8-472B-BF14-8C2B3A15D553] (class [SurveyWebpart.Survey] from assembly [SurveyWebpart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d9504ca020aabc73]) is referenced [32] times in the database [SP2013_Content], but is not installed on the current farm. Please install any feature/solution which contains this web part. One or more web parts are referenced in the database [SP2013_Content], but are not installed on the current farm. Please install any feature or solution which contains these web parts.

La soluzione più ovvia è reinstallare la feature che conteneva la WebPart.

Se questo non è possibile, si può procedere con la cancellazione dei riferimenti.
Per trovare in quali pagine è referenziata la WebPart si può usare questa query SQL sul database di content:

SQL

USE SP2013_Content

SELECT * 
FROM AllDocs 
  INNER JOIN AllWebParts ON AllDocs.Id = AllWebParts.tp_PageUrlID 
WHERE AllWebParts.tp_WebPartTypeID ='30B9CA5C-5DF8-472B-BF14-8C2B3A15D553'
ritorna un elenco di righe dove nel campo DirName e LeafName è indicato, rispettivamente, il percorso e il nome del file.
Per capire se la pagina e attiva, una versione precedente o nel cestino, fare riferimento ai campi tp_IsCurrentVersion, tp_PageVersion e tp_Deleted
A questo punto la WebPart potrebbe essere presente:
  • direttamente sulla pagina
  • su una sua precedente versione (nel caso fosse attivo il versioning / history)
  • nel cestino
Per eliminare la segnalazione procedi con il rimuovere la webpart dalla pagina, rimuovere una vecchia versione della pagina o cancellare completamente la pagina.

Una volta eliminati tutti i riferimenti, rimuovere le pagine anche dal cestino utente e da quello amministrativo di site collection (secondo livello).

Per verificare se ci sono ancora segnalazioni, si può usare il comando PowerShell:

PowerShell

Test-SPContentDatabase SP2013_Content
oppure andare nella Central administration http://<indirizzo ca>:<porta>/Lists/HealthReports/AllItems.aspx

Se non si ha accesso diretto al database ma si hanno i permessi di lettura, si può eseguire questo PowerShell per eseguire la query precedente

PowerShell

#nome server o alias
$sqlServer = "...nome del server e/o istanza..."
$database = "...nome del database..."
$id = "...guid da cercare..."

$query = "SELECT * FROM AllDocs INNER JOIN $database..AllWebParts ON AllDocs.Id = AllWebParts.tp_PageUrlID WHERE AllWebParts.tp_WebPartTypeID ='$id'"
 
$cnn = "server=$sqlServer;database=$database;Integrated Security=sspi"
#$cnn = "server=$sqlServer;database=$database;User ID=myUsername;Password=myPassword;Trusted_Connection=False;"
 
$da = new-object System.Data.SqlClient.SqlDataAdapter($query, $cnn)
$tbl = new-object System.Data.DataTable
$count = $da.fill($tbl)
$da.dispose()
 
#return data
Write-Host "Record letti: $count" -ForegroundColor Green
$tbl
#visualizzo il risultato in una finestra
$tbl | Out-GridView 
Tags:
Errori120 SharePoint498 SharePoint 2010224 SharePoint 2013137 SharePoint 201668 SQL90 SQL Server100 T-SQL66
Potrebbe interessarti anche: