문제

여러 솔루션을 함께 설치하는 설치 스크립트에서는 ULS 로그에서 다음 오류로 솔루션이 다음과 같은 오류로 배포되지 않음을 발견했습니다.

system.data.sqlclient.sqlexception : 기본 키 위반 제약 조건 'pk_classes'.오브젝트에 중복 키를 삽입 할 수 없습니다 'dbo.classes'.

이것은 PowerShell과 stsadm과 함께 발생합니다.

도움이 되었습니까?

해결책

우리는 다른 솔루션에서 2 번 (stsadm에서 관찰 된 동일한 동작), 그리고 배포가 완료 될 때까지 기다리는 논리를 호출하는 논리가있었습니다. 드문 경우에, 무슨 일이 일어 났는지, 두 솔루션이 모두가 잠금을 가져 오기 전에 배포 잠금을 획득하려고 시도하는 것입니다. 하나의 스레드가 성공하고 기본 키 예외로 하나의 실패가 실패합니다.

로그는 다음과 같습니다 :

Solution Deployment : Acquiring deployment job lock for server ... solutionA.wsp  
Solution Deployment : Acquiring deployment job lock for server ... solutionB.wsp  
Solution Deployment : Successfull ACQUIRED deployment job lock for server ... solutionA.wsp 
System.Data.SqlClient.SqlException: Violation of PRIMARY KEY constraint 'PK_Classes'. Cannot insert duplicate key in object 'dbo.Classes'.
.

대신 :

Solution Deployment : Acquiring deployment job lock for server ... solutionA.wsp  
Solution Deployment : Successfull ACQUIRED deployment job lock for server ... solutionA.wsp 
Solution Deployment : Acquiring deployment job lock for server ... solutionB.wsp
.

(솔루션이 거부되고 해결책을 마무리 할 때까지 기다리며)

해결책은 하나의 솔루션을 설치하고 완료 할 때까지 기다린 다음 다른 솔루션을 설치하는 것입니다. 여기에서 솔루션에서 Jobexists 속성을 사용할 때까지 기다리는 방법의 몇 가지 샘플이 있습니다. 솔루션 배포 상태 SharePoint 뒤에있는 장면 뒤에있는 장면의 뒤에는 하나의 작업이 실행되고 잠금이 적절하게 획득 될 때 다른 작업을 수행 할 수 있습니다 (대기 간격 이상).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top