Bei meinen bisherigen SharePoint-Migrationen bin ich immer wieder auf folgende zwei Probleme mit InhaltsTypen (ContentTypes) gestoßen.
- ContentTypes waren doppelt vorhanden (duplicate ContentTypes) oder
- ContentTypes waren gar nicht vorhanden (missing ContentTypes)
Duplicate ContentTypes sind zumeist eine Folge der Installation von Drittanbieter-Lösungen (WSPs). Hierzu zählt das Paradebeispiel “Fantastic Fourty” (wobei diese von Microsoft vorangetriebenen Website-Vorlagen nicht unbedingt in die Kategorie der Drittanbieter geschoben werden können ;-)).
Hinweis: Joel Oleson hat übrigens zeitgleich zu meinem Beitrag hier einen ausführlichen Beitrag zum Thema “Migration der Fantastic Fourty” geschrieben. (Quelle: http://www.sharepointjoel.com/Lists/Posts/Post.aspx?ID=469, 28.07.2011)
Um eine Migration erfolgreich durchzuführen, darf es keine ContentTypes geben, die die gleichen ContentType-IDs besitzen. Leider bemerkt man das Auftreten doppelter ContentType-IDs erst nach der Ausführung des PowerShell-Cmdlet “Mount-SPContentDatabase” (und nicht, wie man vermuten würde, beim zuvor ausgeführten “Test-SPContentDatabase” – den exakten Wortlaut der Fehlermeldung habe ich nicht mehr parrat, aber er müsste in etwa “A duplicate content type name ‘Resource’ was found.” heißen).
Das Vorkommen von duplicate ContentTypes kann man bspw. über SQL-Abfragen in Inhalts-Datenbanken der Quell-Umgebung (SharePoint 2007) realisieren. Für das Paradebeispiel der Fantastic Fourty gilt es, die ContentTypes herauszufinden, die im Namen das Wort “Ressource” beinhalten.
Hinweis: Zugriffe auf SharePoint-Datenbanken sind mit Vorsicht zu genießen.
SELECT * FROM ContentTypes WHERE ResourceDir like ‘%Ressource%’
In obigem Screenshot ist zu sehen, dass in der Spalte “ResourceDir” folgende Einträge bereits auf der Quell-Umgebung vorhanden sind:
- Ressourcenreservierung
- Ressource
- Ressourcentyp
In der Spalte “Scope” kann man außerdem die zugehörigen SiteCollection-URLs einsehen.
Zum Entfernen der ContentTypes sollte man am besten das Feature deaktivieren, welches die ContentTypes angelegt hat. Im Falle der Fantastic Fourty wäre dies das Feature “Felder und Inhaltstypen für die Windows SharePoint Services-Anwendungsvorlagen” (Feature-Name “TSATypes”).
Vom Löschen der ContentTypes direkt in der Inhalts-Datenbank rate ich aus zwei Gründen ab.
- Das manuelle Eingreifen in die Datenbanken des SharePoint wird von Microsoft nicht supported (führt zum Erlöschen jeglicher Support-Ansprüche).
- Ist man nicht selbst Ersteller eines ContentTypes, ist ungewiss, ob nicht noch weitere “Aufräumarbeiten” mit dem Löschen von ContentTypes einhergehen. > Lieber den Hersteller kontaktieren.
Missing ContentTypes sind Inhaltstypen, die vorhanden sein sollten, aber (aus welchen magischen Gründen auch immer) nicht vorhanden sind.
Während einer Migration (nach Ausführung des PowerShell-Cmdlets “Mount-SPContentDatabase”) erhält man bspw. den folgenden Fehler:
Feature upgrade incomplete for Feature ‘CTypes’ (Id: ’695b6570-a48b-4a8e-8ea5-26ea7fc1d162′) in Site ‘http://myportal/mywebsite/’. Exception: Der Inhaltstyp wurde nicht gefunden (ID: ’0×010107′)
Hierbei muss man wissen, dass die oben genannte ID die Feature-ID ist, von dessen Feature die ContentTypes erstellt werden sollen. Die ContentType-ID wäre in diesem Fall die zuletzt genannte ID.
- SiteCollection-URL: http://myportal/mywebsite/
- Feature-ID: 695b6570-a48b-4a8e-8ea5-26ea7fc1d162
- ContentType-ID: 0×010107
Beim Aufruf der ContentType-Verwaltungsseite (http://myportal/mywebsite/layouts/ManageContentType.aspx?ctype=0×010107) erhält man folgende Fehlermeldung.
Das SharePoint-ULS-Log gibt auch ein paar Hinweise, die allerdings völlig irreführend sind.
Looking up typical site http://myportal/mywebsite/layouts/ManageContentType.aspx?ctype=0×010107 in web application myWebApplication
…
Failed to look up string with key “WorkflowTaskIP_Description”, keyfile
Localized resource for token ‘WorkflowTaskIP_Description’ could not be found for file with path: “(unavailable)”.
Die Lösung dieses Problems liegt darin, dass oben genannte Feature einfach zu aktivieren. Da es sich hierbei um ein verstecktes (hidden) Feature handelt, muss es via STSADM aktiviert werden.
stsadm -o activatefeature -id 695b6570-a48b-4a8e-8ea5-26ea7fc1d162 -url
http://myportal/mywebsite -force
Nach der Aktivierung bringt auch der Aufruf der ContentType-Verwaltungsseite keinen Fehler mehr und die Migration kann fortgeführt werden.
Hallo Axel,
bei einer meiner Site Collections (SPF2010) sind sämtliche Content types verschwunden. Ich bekomme im Designer keine Fehlermeldung, nur die Anzeige: “There are no items to show in this view”.
Hast Du eine Idee woran das liegen könnte, bzw. wie ich es beheben kann?
Vielen Dank
Sven