メイン データベースからフェールオーバー データベースへの SQL サーバー トランザクション レプリケーションを使用している状況があります。メイン サイトがあり、フェールオーバー Web サイトはフェールオーバー データベースを使用しています。
両方の Web サイト (エンティティ フレームワークを使用) は同一です (データベースも同様です)。
私の問題は、レプリケーションがアクティブな場合、フェイルオーバー Web サイトで一部の操作がクラッシュすることです。レプリケーションを非アクティブ化すると、操作は正常に実行されます。
私の推測では、フェイルオーバー Web サイトの EntityModel とデータベースがレプリケーションにさらされたときに、同時実行の問題が発生していると思われます。
誰かが同様の問題に遭遇しましたか? トランザクション レプリケーション + エンティティ フレームワークの経験がある人はいますか?
これが私が得る例外です:
at System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter)
at System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache)
at System.Data.Objects.ObjectContext.SaveChanges(SaveOptions options)
at System.Data.Objects.ObjectContext.SaveChanges()
at Library.XXXXEntities.Context_SavingChanges(Object sender, EventArgs e)
in C:\SVN\Branches\Prod - 1.68.7\Library\LINQ\Audit.cs:line 38
at System.Data.Objects.ObjectContext.OnSavingChanges()
at System.Data.Objects.ObjectContext.SaveChanges(SaveOptions options)
at System.Data.Objects.ObjectContext.SaveChanges() at Library.Provider.Save()
in C:\SVN\Branches\Prod - 1.68.7\Library\XXXX.Provider.cs:line 57
at XXXX.mnuExportGeneric.RecreatePositionsToBeUnique()
at XXXX.mnuExportGeneric.Export(Int32 programId, DirectoryInfo directoryDestination, Boolean exportInventory, Int32 CurrencyListID, Int32 configurationId, Boolean subFolder)
at XXXX.mnuExport.Export(Int32 ProgramId, String TempExportFolder, String ExportFolder, TreeView treeViewErreurs, Int32 CurrencyListID, Boolean exportInventory, Int32[] configurationsId)
マッピングに問題がある可能性がありますが、トランザクション レプリケーションがアクティブな場合のみです。
更新:アプリケーション環境から完全に抜け出し、アクティブな継ぎ目が違法であるだけでなく、レプリケーションが「存在する」ときに、フェールオーバー データベースのテーブルに新しい行を挿入しようとしました。明日、レプリケーションを完全に削除して試してみます...またはそのようなより抜本的な変更を...
ありがとう!