Active Directory 環境内で内部的に使用されるサイトがあります。2 つのデータベース _live と _audit があります
ユーザーがビューの 1 つを介してデータを入力すると、現在のレコードが複製され、トリガー (更新/削除 & 日時スタンプにタグ付けされたアクション) を介して監査され、ライブ データベースのレコードが新しいもので更新されます。データ。それが計画です。
このシナリオをローカル開発ソリューションから実行し、ライブ データベースを指すと、100% 動作しますが、ライブ データベースを指すライブ サイトでは、Web サーバーで次のエラーが発生し続けます。
An error occurred while updating the entries. See the inner exception for details.
at System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter)
at System.Data.Objects.ObjectContext.SaveChanges(SaveOptions options)
at Portal.Repositories.Product_Master_GroupingRepository.Save() in D:\.....:line 125
at Portal.Controllers.Factory.Products.Prod_Info.PLUController.Edit(Int32 id, VM_Product_Master_Grouping viewModel) in D:\.....:line 200
at lambda_method(Closure , ControllerBase , Object[] )
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.\u003c\u003ec__DisplayClass37.\u003c\u003ec__DisplayClass39.\u003cBeginInvokeActionMethodWithFilters\u003eb__33()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.\u003c\u003ec__DisplayClass4f.\u003cInvokeActionMethodFilterAsynchronously\u003eb__49()
その他のいくつかの観察
- ライブ サイトからのデータベース インタラクションは、作成したエイリアスを介して行われます。
- トリガーを無効にすると、ライブ サイトは正常に保存されますが、ログは記録されません。
- トリガーがアクティブな場合、挿入/更新が「失敗」しても SQL ステートメントが生成されます。(ただし、ステートメントを SQL プロファイラーからコピーして SQL で手動で実行すると、レコードが更新され、(トリガーを介して) ログに記録されます)
- 私はエイリアスが持っていないネットワーク上で管理者権限を持っています(問題に関連している可能性があると思います...しかし確かではありません)
少しでも役立つ場合は、コードを提供できます。