فشل نشر الحل مع خطأ "انتهاك لقيد المفتاح الأساسي" PK_Classes ""

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

  •  10-12-2019
  •  | 
  •  

سؤال

في البرنامج النصي التثبيت لدينا، والذي يقوم بتثبيت العديد من الحلول معا، وجدنا أن الحلول قد فشلت في بعض الأحيان في النشر مع الخطأ التالي في سجل ULS:

system.data.sqlclient.sqlexception: انتهاك المفتاح الأساسي القيد "pk_classes".لا يمكن إدراج مفتاح مكرر في الكائن "dbo.classes".

يحدث هذا مع كل من PowerShell و Stsadm.

هل كانت مفيدة؟

المحلول

كان لدينا منطق كان يدعو إلى تثبيت التحسس مرتين على حلول مختلفة (نفس السلوك الملاحظ مع STSADM)، ثم منطق في انتظار الانتشار لإكماله. في حالات نادرة، ما حدث، هو أن كلا الحلول كانت تحاول اكتساب قفل النشر قبل الحصول على قفل سوف ينجح موضوع واحد وسيفشل المرء باستثناء المفتاح الأساسي.

لذلك سيبدو السجل: giveacodicetagpre.

بدلا من: giveacodicetagpre.

(متبوعا برفع حلول الحلول وينتظر الروابط حتى النهاية)

الحل هو تثبيت حل واحد، انتظر حتى يكمله، ثم تثبيت آخر. هناك بعض عينات من كيفية الانتظار باستخدام خاصية JobsExists على المحلول هنا: اكتشاف حل نشر الحالة . ليس الأمر أبطأ حقا للقيام به بهذه الطريقة (ليس أكثر من فاصل الانتظار الخاص بك)، لأنه خلف الكواليس يدير SharePoint وظيفة واحدة ثم الآخر على أي حال عندما يتم الحصول على الأقفال بشكل صحيح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى sharepoint.stackexchange
scroll top