現象
次のような状況を考えます。
-
Microsoft SQL Server 2012 またはがインストールされている SQL Server の 2014 のマスター データ サービス (MDS) があります。
-
100 のメンバーを持つエンティティを作成して、コードの値を自動的に作成」オプションをチェックします。
-
MDS エクスプ ローラーで、エンティティにはメンバーの数を持つメンバーの 2 つのページ 2 ページ目で、グリッド ページのサイズになる (デフォルトは 50)。
シナリオ 1:
1 ページで[メンバーの追加] ボタンをクリックして、新しいメンバーを追加し、次のページボタンをクリックするに必要なデータを入力します。3 ページが作成され、次のエラーが表示されます。
System.ArgumentOutOfRangeException: [ArgumentOutOfRange_Index]
引数:
デバッグ リソース文字列はご利用いただけません。多くの場合、キーと引数は、問題を診断するための十分な情報を提供します。Http://go.microsoft.com/fwlink/?linkid=106663&Version=5.1.20913.00&File=mscorlib.dll&Key=ArgumentOutOfRange_Indexを参照してください。
パラメーター名: インデックス
System.ThrowHelper.ThrowArgumentOutOfRangeException() で
System.Collections.Generic.List'1.get_Item (Int32 インデックス) に
System.Collections.ObjectModel.Collection'1.get_Item (Int32 インデックス) に
Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.GetEnumerator() で
System.Windows.Controls.DataForm.get_ItemsCount() で
System.Windows.Controls.DataForm.SetCanMoveToLastItem() で
System.Windows.Controls.DataForm.SetAllCanProperties() で
System.Windows.Controls.DataForm.SetIsItemValid() で
System.Windows.Controls.DataForm.GenerateUI (clearEntityErrors のブール値、ブール値の swapOldAndNew) で
System.Windows.Controls.DataForm.OnCurrentItemPropertyChanged (際 d、DependencyPropertyChangedEventArgs e) で
System.Windows.DependencyObject.RaisePropertyChangeNotifications (オブジェクトの oldValue、オブジェクトの新しい値は報告 dp) に
System.Windows.DependencyObject.UpdateEffectiveValue (報告のプロパティ、EffectiveValueEntry oldEntry、EffectiveValueEntry & newEntry、ValueOperation 操作) で
System.Windows.DependencyObject.SetValueInternal (オブジェクトの値、ブール値の allowReadOnlySet、ブール値の isBindingInStyleSetter は報告 dp) に
System.Windows.Controls.DataForm.UpdateCurrentItem() で
System.Windows.Controls.DataForm < SetUpCollectionView > b__8 で (データ フォームをインスタンス化、オブジェクトのソース、EventArgs eventArgs)。
System.Windows.Controls.WeakEventListener'3.OnEvent (TSource のソース、TEventArgs eventArgs) で
System.EventHandler.Invoke (オブジェクトの送信者、EventArgs e) で
Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.OnCurrentChanged() で
Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.MoveCurrentToPosition (Int32 の位置) に
Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.MoveCurrentTo (オブジェクトの項目) に
Microsoft.MasterDataServices.Client.ViewModel.MasterData.EntityMembersViewModel.set_SelectedItem (メンバーの値) に
Microsoft.MasterDataServices.Client.ViewModel.Common.ItemsBase'2.ReloadItems() で
Microsoft.MasterDataServices.Client.ViewModel.MasterData.EntityMembersViewModel.EntityMembers_RefreshNeeded (オブジェクトの送信者、EventArgs e) で
Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.Refresh() で
Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.MoveToPage (Int32 pageIndex) で
Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.MoveToNextPage() で
System.Windows.Controls.DataPager.PageMoveHandler (int32 型の oldPageIndex、Int32 newPageIndex、PageMoveOperationDelegate pageMoveOperation) で
System.Windows.Controls.DataPager.OnNextPageButtonBaseClick (オブジェクトの送信者、特に e) で
System.Windows.Controls.Primitives.ButtonBase.OnClick() で
System.Windows.Controls.Button.OnClick() で
System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp (MouseButtonEventArgs e) で
System.Windows.Controls.Control.OnMouseLeftButtonUp (コントロールの ctrl キー、EventArgs e) で
で MS です。Internal.JoltHelper.FireEvent (IntPtr unmanagedObj、IntPtr の unmanagedObjArgs、int32 型の argsTypeIndex、int32 型の actualArgsTypeIndex、文字列 eventName、UInt32 フラグ)
シナリオ 2:
2 ページ目で強制的に新しいページを追加するのにはエクスプ ローラーにメンバーを追加します] ボタンをクリックします。3 ページを作成し、し、次のエラーが表示されます。
System.ArgumentOutOfRangeException: [ArgumentOutOfRange_Index]
引数:
デバッグ リソース文字列はご利用いただけません。多くの場合、キーと引数は、問題を診断するための十分な情報を提供します。Http://go.microsoft.com/fwlink/?linkid=106663&Version=5.1.20913.00&File=mscorlib.dll&Key=ArgumentOutOfRange_Indexを参照してください。
パラメーター名: インデックス
System.ThrowHelper.ThrowArgumentOutOfRangeException() で
System.Collections.Generic.List'1.get_Item (Int32 インデックス) に
System.Collections.ObjectModel.Collection'1.get_Item (Int32 インデックス) に
Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.GetEnumerator() で
System.Windows.Controls.DataForm.get_ItemsCount() で
System.Windows.Controls.DataForm.SetCanMoveToLastItem() で
System.Windows.Controls.DataForm.SetAllCanProperties() で
System.Windows.Controls.DataForm。 < SetUpCollectionView > b__a (データ フォームのインスタンス、オブジェクトのソース、NotifyCollectionChangedEventArgs の eventArgs) で
System.Windows.Controls.WeakEventListener'3.OnEvent (TSource のソース、TEventArgs eventArgs) で
System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke (オブジェクトの送信者、NotifyCollectionChangedEventArgs e) で
Microsoft.MasterDataServices.Client.ViewModel.Common.SortablePagedCollectionView'1.CollectionChangedHandler (オブジェクトの送信者、NotifyCollectionChangedEventArgs e) で
System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke (オブジェクトの送信者、NotifyCollectionChangedEventArgs e) で
System.Collections.ObjectModel.ObservableCollection'1.OnCollectionChanged (NotifyCollectionChangedEventArgs e) で
System.Collections.ObjectModel.ObservableCollection'1.InsertItem (Int32 インデックス、T の項目) に
System.Collections.ObjectModel.Collection'1.Insert (Int32 インデックス、T の項目) に
Microsoft.MasterDataServices.Client.ViewModel.MasterData.EntityMembersViewModel.AddNewMemberToCollection (要求 Id の Guid、EntityMembersGetResponse の応答、Exception ex) で
Microsoft.MasterDataServices.Client.ViewModel.ServiceProxy.ServiceClient <> c__DisplayClass16 で ' 2。 < ExecuteRequest > b__15 (オブジェクトの送信者、RequestCompletedEventArgs'1 e)。
Microsoft.MasterDataServices.Client.ViewModel.ServiceProxy.ServiceClient.OnEntityMembersGetCompleted (オブジェクトの状態) で
解決策
問題は、SQL Server の次の累積的な更新プログラムで最初に修正されました。
SQL Server 2014 用の累積的な更新プログラム 1/en-us/help/2931693
SQL Server 2012 SP1 用の累積的な更新プログラム 9/en-us/help/2931078
SQL Server 用の新しい累積的な更新プログラムには、以前の累積的な更新プログラムに含まれていた、すべての修正プログラムおよびすべてのセキュリティ更新プログラムが含まれています。以下で、SQL Server 用の最新の累積的な更新プログラムを確認してください。
詳細
インストールが完了したら、マスター データ サービスの構成マネージャーを開き、MDS データベースをアップグレードすることがあります。
-
データベース] をクリックし、[データベースの選択] をクリックします。
-
アップグレードするデータベースに接続します。データベースを選択すると、次のメッセージが表示されます:このデータベースをアップグレードする必要があります。データベースがアップグレードされるまで、システムの設定を変更することはできません。
-
データベースのアップグレード] をクリックします。データベースのアップグレード ウィザードが開きます。データベースをアップグレードし、[完了] をクリックしてウィザードの指示に従います。
状況
マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。