SharePoint Migration – Duplicate ContentTypes, missing ContentTypes

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%’

Das Ermitteln von duplicate ContentTypes kann mittels SQL erfolgen.

Duplicate ContentTypes (Ressource) der Fantastic Fourty

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”).

Das Feature "Felder und Inhaltstypen für die Windows SharePoint Services-Anwendungsvorlagen" legt ContentTypes beim Aktivieren an und entfernt diese beim Deaktivieren.

Das Feature der Fantastic Fourty, das die ContentTypes anlegt

Vom Löschen der ContentTypes direkt in der Inhalts-Datenbank rate ich aus zwei Gründen ab.

  1. Das manuelle Eingreifen in die Datenbanken des SharePoint wird von Microsoft nicht supported (führt zum Erlöschen jeglicher Support-Ansprüche).
  2. 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.

Der Aufrund der Content-Type-Verwaltungsseite zeigt für nicht vorhandene Content-Types eine Fehlermeldung.

Fehlermeldung beim Aufruf eines nicht vorhanden Inhalts-Typs (missing ContentType)

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.

Dieser Beitrag wurde unter Microsoft, SharePoint 2007, SharePoint 2010 abgelegt und mit , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Eine Antwort auf SharePoint Migration – Duplicate ContentTypes, missing ContentTypes

  1. Sven sagt:

    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

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>