Problem
Missing Server Side Dependencies
Serverseitige Abhängigkeiten fehlen
MissingFeature
Details
Im Ereignisprotokoll taucht die Meldung “SharePoint-Integritätsanalyse: Fehler. Serverseitige Abhängigkeiten fehlen.” und “[MissingFeature]” mit der ID: 2137 auf.
Die Integritätsanalyse (Health Analyzer) meldet “Serverseitige Abhängigkeiten fehlen” und “[MissingFeature]”
Ereignisprotokoll
Protokoll(name) | Anwendung |
---|---|
Quelle | SharePoint Foundation |
Aufgabenkategorie | Integrität |
Ebene | Fehler |
ID | 2137 |
Details | SharePoint-Integritätsanalyse: Fehler. Serverseitige Abhängigkeiten fehlen. [MissingFeature] Die Datenbank [‘ContentDB‘] enthält mindestens einen Verweis auf ein fehlendes Feature: ID = [11111111-2222-3333-4444-555555555555], Name = [UHH Personal Content Types], Beschreibung = [], Installationspfad = [UHH.Personal_UHH Personal Feature]. Auf ein Feature mit der ID 11111111-2222-3333-4444-555555555555 wird in der Datenbank [‘ContentDB’] verwiesen, es ist jedoch in der aktuellen Farm nicht installiert. Die fehlenden Features bewirken ggf. einen Upgradefehler. Installieren Sie alle Lösungen, die dieses Feature enthalten, und starten Sie das Upgrade bei Bedarf erneut.Weitere Informationen zu dieser Regel finden Sie unter “http://go.microsoft.com/fwlink/?LinkID=142689”. |
Die Meldung (s.u) taucht unter “Überwachung/Probleme und Lösungen überprüfen” (Integritätsanalyse / Health Analyzer) auf der Seite “Probleme und Lösungen überprüfen” auf.
Integritätsanalyse / Health Analyzer Eintrag
Titel | Serverseitige Abhängigkeiten fehlen. |
---|---|
Schweregrad | 1 – Fehler |
Kategorie | Konfiguration |
Erläuterung | [MissingFeature] Die Datenbank [‘ContentDB‘] enthält mindestens einen Verweis auf ein fehlendes Feature: ID = [11111111-2222-3333-4444-555555555555], Name = [UHH Personal Content Types], Beschreibung = [], Installationspfad = [UHH.Personal_UHH Personal Feature]. Auf ein Feature mit der ID 11111111-2222-3333-4444-555555555555 wird in der Datenbank [‘ContentDB’] verwiesen, es ist jedoch in der aktuellen Farm nicht installiert. Die fehlenden Features bewirken ggf. einen Upgradefehler. Installieren Sie alle Lösungen, die dieses Feature enthalten, und starten Sie das Upgrade bei Bedarf erneut. |
Lösung | Weitere Informationen zu dieser Regel finden Sie unter “http://go.microsoft.com/fwlink/?LinkID=142689”. |
Dienste, die Fehler aufweisen | SPTimerService (SPTimerV4) |
Folgende Schritte wurden ausprobiert – ohne Erfolg
SQL-Abfrage (ContentDB)
select AllDocs.SiteId, WebId, Webs.Title as'Web Title', ListId, DirName, LeafName |
SELECT * |
SELECT * |
Es wurden jeweils keine Ergebnisse gefunden.
FeatureAdmin for SharePoint 2013 – v2.4.2.0
Das Programm “FeatureAdmin for SharePoint 2013 – v2.4.2.0” lieferte auf “Find Faulty Feature in Farm” das Ergebnis “No Faulty Features was found in the farm!”
stsadm -o enumallwebs -includefeatures
Es wurde ein Bericht mit Features generiert:
stsadm -o enumallwebs -includefeatures > $home\desktop\FeaturesReport.xml
In diesem Bericht war die ID “11111111-2222-3333-4444-555555555555” nicht zu finden.
Funktion Remove-SPFeatureFromContentDB
Das Skript wurde in der SharePoint 2013-Verwaltungsshell als Administrator ausgeführt:
function Remove-SPFeatureFromContentDB($ContentDb, $FeatureId, [switch]$ReportOnly) { $db = Get-SPDatabase | where { $_.Name -eq $ContentDb } [bool]$report = $false if ($ReportOnly) { $report = $true } $db.Sites | ForEach-Object { Remove-SPFeature -obj $_ -objName "site collection" -featId $FeatureId -report $report $_ | Get-SPWeb -Limit all | ForEach-Object { Remove-SPFeature -obj $_ -objName "site" -featId $FeatureId -report $report } } } function Remove-SPFeature($obj, $objName, $featId, [bool]$report) { $feature = $obj.Features[$featId] if ($feature -ne $null) { if ($report) { write-host "Feature found in" $objName ":" $obj.Url -foregroundcolor Red } else { try { $obj.Features.Remove($feature.DefinitionId, $true) write-host "Feature successfully removed from" $objName ":" $obj.Url -foregroundcolor Red } catch { write-host "There has been an error trying to remove the feature:" $_ } } } else { #write-host "Feature ID specified does not exist in" $objName ":" $obj.Url } } Remove-SPFeatureFromContentDB -ContentDB "ContentDB" -FeatureId "11111111-2222-3333-4444-555555555555" -ReportOnly
Es wurde nichts gefunden/ausgegeben.
STSADM -o deactivatefeature
Der Versuch das Feature zu deinstallieren/deaktivieren hat nichts gebracht:
STSADM -o uninstallfeature -id 11111111-2222-3333-4444-555555555555 <# Ausgabe: Feature with Id '11111111-2222-3333-4444-555555555555' is not installed in this farm. The feature was not uninstalled. #>
STSADM -o deactivatefeature -id 11111111-2222-3333-4444-555555555555 <# Ausgabe: Das Feature mit der ID 11111111-2222-3333-4444-555555555555 ist zurzeit nicht installiert. Verwenden Sie 'force', um es in diesem Bereich zu deaktivieren. #>
STSADM -o deactivatefeature -id 11111111-2222-3333-4444-555555555555 -force <# Ausgabe: Der Vorgang wurde erfolgreich abgeschlossen. #>
Die Meldung ist im Health Analyzer auch nach dem klicken auf “Jetzt erneut analysieren” weiterhin vorhanden.
Uninstall-SpFeature
Uninstall-SpFeature -Identity "11111111-2222-3333-4444-555555555555" -Force <# Ausgabe: Uninstall-SpFeature : Es wurde kein Feature-Objekt mit 'Path or Id: 11111111-2222-3333-4444-555555555555 in scope Local farm' gefunden. In Zeile:1 Zeichen:1 + uninstall-SpFeature -Identity "11111111-2222-3333-4444-555555555555" -Force + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidData: (Microsoft.Share...ninstallFeature:SPCmdletUninstallFeature) [Uninstall-SPFeature], SPCmdletPipeBindException + FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdletUninstallFeature #>
Ergebnis: Es wurde kein Feature-Objekt gefunden.
Fix
Problem eingrenzen
Folgende SQL-Snippets können bei der Problemeingrenzung helfen.
-- Aus der Integritätsanalysemeldung "fehlendes Feature: ID" als "FeatureId" und "Name" als "FeatureTitle" einsetzen, um die SiteId herauszufinden select * from ContentDB.dbo.FeatureTracking where FeatureId = '11111111-2222-3333-4444-555555555555' AND FeatureTitle = 'UHH Personal Content Types' -- Aus der Integritätsanalysemeldung die Datenbank in das Feld "from", "fehlendes Feature: ID" als "FeatureId" und "Name" als "FeatureTitle" einsetzen, um die FullUrl der Site herauszufinden, wo das Feature installiert ist. select s.SiteId, s.FeatureId, s.SolutionId, s.FirstActivated, s.FeatureTitle, s.FolderName, s.FeatureDescription, w.FullUrl, w.Title, w.Description, w.RequestAccessEmail from ContentDB.dbo.FeatureTracking AS s LEFT JOIN dbo.AllWebs AS w ON s.SiteId = w.SiteId where FeatureId = '11111111-2222-3333-4444-555555555555' AND FeatureTitle = 'UHH Personal Content Types' -- FeatureId -> SolutionId, SiteId select * from dbo.FeatureTracking where FeatureId = '11111111-2222-3333-4444-555555555555' --select * from dbo.Features where FeatureId = '11111111-2222-3333-4444-555555555555' -- SolutionId -> SiteId, Installationsdateien (wsp) Name select * from dbo.Solutions where SolutionId = 'DA568BA8-8435-4A29-9E6B-99064DA50FAF' -- FeatureId -> SolutionFilePath (installierte Dateien) select * from dbo.SolutionFiles where FeatureId = '11111111-2222-3333-4444-555555555555' -- SiteId -> FullUrl select * from dbo.AllWebs where SiteId IN('301C5AC1-C6F9-4743-82CE-4CD19FFCDE95', 'E51521DD-247E-489A-B9B2-4D6D02CAEF88') -- FeatureId -> Liste tp_Title select * from dbo.AllLists where tp_FeatureId = '11111111-2222-3333-4444-555555555555' select ft.*, --ft.SiteId, W.* from dbo.FeatureTracking AS ft LEFT JOIN dbo.AllSites AS W ON ft.SiteId = W.Id where ft.FeatureId IN('11111111-2222-3333-4444-555555555555') select ft.*, --ft.SiteId, W.* from dbo.FeatureTracking AS ft LEFT JOIN dbo.AllWebs AS W ON ft.SiteId = W.Id where ft.FeatureId IN('11111111-2222-3333-4444-555555555555') select ft.FeatureId, ft.SiteId, W.* from dbo.FeatureTracking AS ft LEFT JOIN dbo.AllSites AS W ON ft.SiteId = W.Id where ft.FeatureId IN('878eae9f-3c5e-47e0-b49d-5741c3387848', '11111111-2222-3333-4444-555555555555') -- Feature FirstActivated, FeatureTitle, FolderName select ft.*, --ft.SiteId, W.* from dbo.FeatureTracking AS ft LEFT JOIN dbo.AllSites AS W ON ft.SiteId = W.Id where ft.FeatureId IN('11111111-2222-3333-4444-555555555555') -- Solution FileName select S.*, W.* from dbo.Solutions AS S LEFT JOIN dbo.AllSites AS W ON S.SiteId = W.Id where S.SolutionId IN('DA568BA8-8435-4A29-9E6B-99064DA50FAF') -- Solution FileName select S.*, W.* from dbo.Solutions AS S LEFT JOIN dbo.AllWebs AS W ON S.SiteId = W.Id where S.SolutionId IN('DA568BA8-8435-4A29-9E6B-99064DA50FAF') -- SolutionFiles select S.*, W.* from dbo.SolutionFiles AS S LEFT JOIN dbo.AllSites AS W ON S.SiteId = W.Id where S.SolutionId IN('DA568BA8-8435-4A29-9E6B-99064DA50FAF')
Lösung
-- Aus der Integritätsanalysemeldung die Datenbank in das Feld "from", "fehlendes Feature: ID" als "FeatureId" und "Name" als "FeatureTitle" einsetzen, um die FullUrl der Site herauszufinden, wo das Feature installiert ist. select s.SiteId, s.FeatureId, s.SolutionId, s.FirstActivated, s.FeatureTitle, s.FolderName, s.FeatureDescription, w.FullUrl, w.Title, w.Description, w.RequestAccessEmail from ContentDB.dbo.FeatureTracking AS s LEFT JOIN dbo.AllWebs AS w ON s.SiteId = w.SiteId where FeatureId = '11111111-2222-3333-4444-555555555555' AND FeatureTitle = 'UHH Personal Content Types'
- Mit FullUrl sieht man auf welchen Seiten die Features installiert sind
- Durch Aktivierung der Features unter Websiteeinstellungen > Websitefeatures auf allen unter “FullUrl” aufgelisteten Seiten, wurde die Meldung beseitigt.
Sonst evtl. per PS oder per FeatureAdmin for SharePoint 2013 (s.Bild u. ) deinstallieren– FeatureAdmin deaktiviert die Features nur. Deinstallation per PS nicht möglich, da das Feature nicht gefunden wird.
Quellen und hilfreiche Links
- sharepointdiary.com: Fix “Features Missing” issue in SharePoint Migration
- isolutions.ch: Missing Serverside Dependencies entfernen
- get-spscripts.com: Removing features from a content database in SharePoint 2010 using PowerShell
- http://sharepoint.stackexchange.com/questions/67405/uninstalling-feature-with-force-command-doesnt-work
- http://www.sharepointtechs.com/installing-uninstalling-feature-using-powershell-sharepoint-2010
- https://sharepointgroove.wordpress.com/2013/12/19/how-to-remove-orphaned-features/
Der Beitrag Serverseitige Abhängigkeiten fehlen – MissingFeature erschien zuerst auf SharePoint-Wiese.