Freigeben über


SharePoint 2013-Workflow kann in SharePoint Designer nicht erstellt oder bearbeitet werden

Symptome

Wenn Sie einen SharePoint 2013-Workflow in SharePoint Designer erstellen oder bearbeiten, scheint nichts zu geschehen, und es wird kein Fehler auf der SharePoint-Designer-Benutzeroberfläche gemeldet. Möglicherweise wird ein Fensterfenster zum Erstellen des Caches angezeigt, das dann schnell verschwindet.

Wenn Sie eine HTTP-Ablaufverfolgung von Fiddler oder einem browserbasierten Entwicklertool erfassen, wird der folgende Fehler angezeigt:

Ausnahme im Bereich aufgetreten
Microsoft.SharePoint.WorkflowServices.WorkflowDeploymentService.GetActivitySignatures. Exception=System.ArgumentException: Ein Element mit demselben Schlüssel wurde bereits hinzugefügt.

Ursache

Ein Feature in der SharePoint-Farm wurde zweimal mit zwei verschiedenen Feature-IDs hinzugefügt.

Lösung

Um dieses Problem zu beheben, identifizieren und entfernen Sie das Feature mit der doppelten ID.

  1. Überprüfen Sie den im ausführlichen Modus gesammelten Unified Logging Service (ULS), um das duplizierte Feature mithilfe einer der folgenden Methoden nachzuverfolgen:

    • Suchen Sie die oben erwähnte Suchfehlermeldung.
    • Suchen Sie nach einer Korrelations-ID oder einer SPRequestGUID, die beide Teil der Serverantwort in der HTTP-Ablaufverfolgung sind, die in Fiddler oder im Browserentwicklertool erfasst wurde.
  2. Wenn Sie das ULS-Protokoll überprüfen, wird eine Liste aller in der Farm installierten Features angezeigt, die abgefragt wurden. Suchen Sie das letzte Feature, das vor dem Fehler abgefragt wurde, und notieren Sie sich die ID des Features.

  3. Führen Sie den Befehl Get-SPFeature Feature-ID aus, um den Namen des Features abzurufen.

  4. Führen Sie den Befehl Get-SPFeature Name des Features aus, um die Feature-ID abzurufen. In der Ausgabe werden zwei Feature-IDs angezeigt, die demselben Feature zugeordnet sind. Dies ist die Ursache des Problems. Eine der beiden Feature-IDs ist ein Duplikat.

  5. Identifizieren Sie das Duplikat, indem Sie die Featureordner auf allen Servern in der Farm überprüfen. Führen Sie alternativ Get-SPFeature Namen des Features auf jedem Server aus, um zu ermitteln, ob mindestens ein Server einen Verweis auf oder eine doppelte Feature-ID aufweist. Notieren Sie sich die Website-URL, die in der Ausgabe angezeigt wird.

  6. Um die doppelte Feature-ID zu entfernen, deaktivieren Sie das Feature mit der doppelten Feature-ID, und deinstallieren Sie es dann mit den folgenden Schritten:

    1. Um das Feature zu deaktivieren, führen Sie den Befehl Disable-spfeature -id Feature-ID -url aus. http://site.
    2. Führen Sie zum Deinstallieren des Features den Befehl Uninstall-spfeature -id Feature-ID aus.

Wenn das Problem weiterhin besteht, ist es möglich, dass der Konfigurationscache weiterhin doppelte Feature-ID-Informationen enthält. Sie können den Konfigurationscache auf allen Zu überwindenden Servern löschen.

Informationen zum Löschen des SharePoint-Konfigurationscaches finden Sie im folgenden Blogbeitrag:

Löschen des SharePoint-Konfigurationscaches

Weitere Informationen

Wenn Sie versuchen, einen SharePoint 2013-Workflow mithilfe von SharePoint Designer zu erstellen oder zu bearbeiten, muss zuerst ein Cache aller Workflowaktivitäten erstellt werden. Dazu gehören integrierte SharePoint-Aktivitäten und alle anderen In der SharePoint-Farm installierten Produkte oder Features (z. B. Project, Nintex usw.). Der SharePoint-Server stellt die Workflowaktivitätsdetails für SharePoint Designer bereit, wenn Designer einen GetActivitySignatures-Aufruf an den Server sendet:

Microsoft.SharePoint.WorkflowServices.StoreWorkflowDeploymentProvider.GetActivitySignatures(DateTime lastChanged).

Um alle in der SharePoint-Farm verfügbaren Workflowaktivitäten (GetActivitySignatures) bereitzustellen, muss SharePoint alle in der Farm vorhandenen Features auflisten und ein Wörterbuch erstellen. In einer Situation, in der ein bestimmtes Feature mit einer zweiten, doppelten ID hinzugefügt wird, tritt in SharePoint beim Erstellen des Wörterbuchs ein Problem auf und wird als "Ein Element mit demselben Schlüssel wurde bereits hinzugefügt" ausgegeben.

Beachten Sie, dass der Wert DateTime, lastChanged davon abhängt, ob Designer bereits über einen Cache von Workflowaktivitäten für eine bestimmte Website verfügt oder nicht. Wenn Designer zum ersten Mal einen Workflowaktivitätencache für eine Website erstellt, ist der Wert des Parameters DateTime lastChanged 0000. Ab diesem Zeitpunkt enthält der Wert den Zeitpunkt, zu dem der Cache zuletzt erstellt wurde. Mit dieser Methode ziehen Designer nur neu hinzugefügte Workflowaktivitäten herunter.

Um den von SharePoint Designer erstellten GetActivitySignature-Cache anzuzeigen, navigieren Sie zum folgenden Speicherort auf dem Computer, auf dem SharePoint Designer ausgeführt wird:

%USERPROFILE%\AppData\Local\Microsoft\WebsiteCache\SharePoint Site name\SharePoint Build version\Activity.xml

Benötigen Sie weitere Hilfe? Navigieren Sie zu SharePoint-Community.