ソリューションの展開はエラーで「主キー制約 'PK_CLASSES」の違反で失敗します。

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

  •  10-12-2019
  •  | 
  •  

質問

私たちのインストールスクリプトでは、いくつかのソリューションをインストールするために、解決策がULSログの次のエラーで展開に失敗したことがわかりました。

System.Data.SqlClient.SCLEXCEPTION:主キーの違反 制約 'pk_classes'。オブジェクトに重複キーを挿入できません 'dbo.classes'。

PowerShellとSTSADMの両方で発生します。

役に立ちましたか?

解決

我々は、異なる解決策(STSADMで観察された同じ行動)でInstall-SPSolutionを呼び出していたロジックを持っていました。まれなインスタンスでは、起こったことは、どちらのスレッドがロックされる前に、両方のソリューションが展開ロックを取得しようとしていたことです。 1つのスレッドが成功し、1つは主キー例外で失敗します。

だからログは次のようになります。

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
.

(続いて解決策が拒否され、解決策が終了するのを待っている)

解決策は1つの解決策をインストールし、完了するのを待ってから別のものをインストールすることです。ここでの解決策のJobExistsプロパティの使用方法のサンプルがいくつかあります。ソリューションの検出ステータス。シーンの背後にあるため、SharePointの背後にあるジョブが1つのジョブを実行し、もう1つはロックが正しく取得されたときに他方のジョブを実行します。

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top