ASP.Net vs MVC vs WebAPI和UseTaskFriendlySynchronizationCont
我有几个ASP.Net MVC和WebAPI项目.大多数是最新的(MVC 5 / WebAPI 2).我一直在重新检查我的安全假设,因为我实现了全局过滤器(对于MVC)和委托处理程序(用于WebAPI)来统一系统的安全性.
在这种情况下,我遇到了一些文章和帖子(见下文),您应该总是将UseTaskFriendlySynchronizationContext设置为true(默认为false).这对我来说似乎是奇怪的,即使在VS2013中,使用MVC 5和WebAPI 2新项目模板(以及ASP.Net WebForms模板)也不会设置此应用程序设置. 关于这个设置的MSDN文档实际上是不存在的,我发现这个说明它是异步编程所需的帖子似乎在WebForms的上下文中. 所以这里是我的问题: >这个设置适用于ASP.Net的任何东西,或ASP.Net特定的页面生命周期内容(我没有使用太多) 这里有一些关于UseTaskFriendlySynchronizationContext的文章: > Set Thread.CurrentPrincipal Asynchronously? 一些文章真的帮助我了解这些东西如何工作,从来没有提到UseTaskFriendlySynchronizationContext: > ExecutionContext vs SynchronizationContext by Stephen Toub 解决方法
缺少的关键参考是
this blog post.具体来说,您需要设置UseTaskFriendlySynchronizationContext或将targetFramework设置为4.5.创建一个新项目将targetFramework设置为4.5,因此您将获得正确的行为(UseTaskFriendlySynchronizationContext隐式设置为true).
回答你的具体问题: >该设置影响ASP.NET请求处理的各种请求,而不仅仅是WebForms.>大多数异步教程假定GUI应用程序场景.>我不确定我认为这会更好一个单独的问题.我的直觉是你离开ASP.NET上下文后不能依赖Thread.CurrentPrincipal. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何让Visual Studio 2012检测虚
- asp.net – Web.Config可能“不可读”
- asp.net – 我使用什么Active Directory字段来唯
- 使用.NET 4.5的ASP.Net成员身份和实体框架迁移的
- asp.net – 如何结合ASP MVC 5和Emberjs
- asp.net – 通过javascript从代码后面访问变量
- asp.net-mvc – MVC4表单输入验证 – 自定义错误
- ASP.NET上的.cshtml razor文件转换
- asp.net-mvc – 错误处理在asp.net mvc 3
- asp.net-mvc – 删除布局将默认为_ViewStart,为什