Entity Framework部署了站点sql触发器问题

时间:2012-06-04 10:54:14

标签: asp.net-mvc-3 entity-framework triggers

我在Active Directory环境中内部使用了一个站点。 我们有2个数据库_live& _audit

当用户通过其中一个视图输入数据时,当前记录将被克隆到通过触发器进行审核(标记为动作,更新/删除和日期时间戳)并且实时数据库中的记录获取更新了新数据。那就是计划。

当我从本地开发解决方案运行此场景并将其指向实时数据库时,它可以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()

其他一些观察

  1. 来自实时网站的数据库交互通过我们创建的别名进行。
  2. 如果我们禁用触发器,则实时站点会保存正常但不会记录日志。
  3. 当触发器处于活动状态时,即使插入/更新“失败”,也会生成SQL语句。 (但是当我从SQL分析器复制语句并在SQL中手动运行它时,记录会被更新并记录(通过触发器))
  4. 我在网络上得到管理员别名没有(认为它可能与问题有关......但不确定)
  5. 如果它能提供帮助,我可以提供一些代码。

1 个答案:

答案 0 :(得分:0)

正如帕维尔所说。阅读给出的例外情况。如果它显示“请参阅内部异常以获取详细信息。”去检查一下内部异常...它会帮助你。 (事实证明我的异常记录器只记录了主要异常消息和堆栈跟踪,但是一旦我将内部异常添加到实际站点,我可以清楚地看到触发器失败,这证实了我怀疑该问题与安全相关)