Lösungsbereitstellung fehlschlägt mit dem Fehler "Verletzung der primären Schlüsseleinschränkung" pk_classes '"

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/72560

  •  10-12-2019
  •  | 
  •  

Frage

In unserem Installationsskript, das mehrere Lösungen zusammen installiert, haben wir festgestellt, dass Lösungen gelegentlich nicht mit dem folgenden Fehler im ULS-Protokoll bereitgestellt wurden:

system.data.sqlclient.sqlexception: Verletzung des Primärschlüssels CONSTRAINT 'PK_CLASSES'.Der doppelte Schlüssel kann nicht in Objekt einfügen 'dbo.classes'.

Dies tritt mit beiden PowerShell und Stsadm auf.

War es hilfreich?

Lösung

Wir hatten Logik, die in der Installations-SPSOLUTION zweimal auf verschiedenen Lösungen aufgerufen wurden (gleiches Verhalten, das mit STSADM beobachtet wurde), und logisch, um darauf zu warten, bis die Bereitstellung abgeschlossen ist. In seltenen Fällen, was passiert ist, ist, dass beide Lösungen versuchten, die Bereitstellungssperre zu erwerben, bevor entweder der Faden das Schloss erhielt; Ein Thread würde erfolgreich sein und man würde mit der primären Key-Ausnahme versagen.

Das Protokoll würde also aussehen: generasacodicetagpre.

statt: generasacodicetagpre.

(gefolgt von LösungB, die auf Solutiona abgelehnt wird und wartet)

Die Lösung besteht darin, eine Lösung zu installieren, warten, bis sie abgeschlossen ist, und dann ein anderes installieren. Es gibt einige Proben, wie Sie mit den Jobxistern-Objekten auf der Lösung hier warten können:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top