2

メイン データベースからフェールオーバー データベースへの 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) 

マッピングに問題がある可能性がありますが、トランザクション レプリケーションがアクティブな場合のみです。

更新:アプリケーション環境から完全に抜け出し、アクティブな継ぎ目が違法であるだけでなく、レプリケーションが「存在する」ときに、フェールオーバー データベースのテーブルに新しい行を挿入しようとしました。明日、レプリケーションを完全に削除して試してみます...またはそのようなより抜本的な変更を...

ありがとう!

4

1 に答える 1

1

これはおそらく EF の問題ではなく、レプリケーション セットアップの問題です。

SQL Server では、任意のノードで変更を加えることができるレプリケーションが許可されていますが、これにはエンタープライズ エディションが必要です

読み取り専用レプリカを更新しようとしている可能性があります。

于 2011-04-26T21:01:14.340 に答える