asp.net-mvc-3 – 处理DbContext后的问题
我最近更改了我的MVC3应用程序,试图正确处理DbContext对象[1].这在开发中运行得很好,但是一旦应用程序被推送到我的生产服务器,我就开始间歇性地获得一些有趣的例外,这些例外会一直存在,直到AppPool被回收.异常可以追溯到我的自定义AuthorizeAttribute中的代码,如下所示:
System.InvalidOperationException: The 'Username' property on 'User' could not be set to a 'Int32' value. You must set this property to a non-null value of type 'String'. System.InvalidOperationException: The 'Code' property on 'Right' could not be set to a 'String' value. You must set this property to a non-null value of type 'Int32'. (数据库模式如下所示:用户:[Guid,String,…],权利:[Guid,Int32,…]) 就好像某些“电线越过”,应用程序混合了数据库的结果:尝试以用户的形式实现正确的结果,反之亦然. 为了管理DbContext的处理,我把代码放在每个控制器级别存储它.当处理控制器时,我也处理DbContext.我知道它很hacky,但AuthorizeAttribute通过filterContext.Controller使用相同的上下文. 在这个庄园中处理DbContext的对象生命周期有什么问题吗?有没有任何合理的解释,为什么我得到上面的纵横交错的例外? [1]虽然我知道没有必要处理DbContext对象,但我最近遇到了许多消息来源,说明这是最好的做法. 编辑(根据@ MikeSW的评论) 当AuthorizationContext在范围内时,OnAuthorization方法中正在设置表示DbContext的AuthorizeAttribute的属性.然后,此属性将在AuthorizeCore方法中使用. 解决方法
你真的需要处理上下文吗?
根据Jon Gallant的this post,他与Microsoft ADO.NET Entity Framework团队保持联系:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – POST后重定向不会更改URL
- asp.net-mvc – 将asp.net服务器参数传递给Angular 2 app
- asp.net-mvc – ASP.NET MVC的一个路由,两个不同的视图
- asp.net-mvc-4 – MVC4的DotNetOpenAuth TwitterClient示例
- 什么是标准的ASP.net数据绑定语法?
- 在ASP.net“正确”中实现OpenID – 会员或验证提供商?
- asp.net-mvc – IIS 7.5.无法禁用Url重写规则(我删除了规则
- asp.net-mvc-routing – Web API路由和Web API帮助页面:如
- asp.net – IIS 7.5无法打开处理程序映射?
- asp.net-mvc – 如何在Visual Studio 2008和ASP.Net MVC中编
- asp.net – RDLC和SSRS之间的区别
- asp.net-core – .NET Core HttpClient是否具有拦
- asp.net-mvc-3 – 使用redirectAction和prg模式在
- asp.net-mvc – 从ASP.NET MVC 3中的RequiredAtt
- asp.net-mvc – 哪里可以将商业模式转换成模型?
- asp.net – 如何从RouteData获取路由名称?
- asp.net-mvc – jQuery.Validation.Unobtrusive客
- 传统asp.net小心 async/await坑
- asp.net-web-api – 如何从Web API响应中删除标头
- asp.net-mvc – 控制器操作无法从JSON读取Guid P