微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net – AspNetSynchronizationContext

尝试使用新的C#5异步模型,令我惊讶的是AspNetSynchronizationContext是一个内部类(以及AspNetSynchronizationContextBase基础)。因此无证。但是,在ASP.NET代码中使用异步/等待功能时,了解它的功能至关重要。我是对的
它确保您的继续将获得与原始呼叫者相同的HttpContext.Current?
它不保证延续将在与呼叫者相同的线程上执行?

如果后一种假设不是真的,并且我得到原始的线程,我可以确保在延续中获得相同的线程上下文吗?我的意思是与线程和线程本地存储相关联的主体/文化?这很重要,因为ASP.NET本地化依赖于线程的文化,我的应用程序依赖于.NET角色安全模型(线程的主体)。

解决方法

Am I correct that It does guarantee your continuations will get the same HttpContext.Current as original callers? It does not guarantee the continuations will execute on the same thread as the callers?

是的,HttpContext.Current被保留,是的,继续可能在不同的线程上执行。

I mean principal/culture associated with the thread and thread local storage? That’s important because ASP.NET localization relies on thread’s culture and my application relies on .NET role security model (thread’s principal).

普通线程本地存储丢失。您可以通过使用LogicalCallContext(与ExecutionContext一起流动)来缓解这一点,但是通过异步,只需直接引用变量就更容易了。

校长始终保留;否则将是一个安全风险。这与ExecutionContext一起流动。

我相信文化流动与AspNetSynchronizationContext,但我没有测试这个在.NET 4.5’s new implementation

你可能会发现我的MSDN article on SynchronizationContext有帮助。这不是官方文档(我不适用于微软),但至少是这样的。请注意,该文章中引用的AspNetSynchronizationContext现在在.NET 4.5中称为LegacyAspNetSynchronizationContext。

一个伟大的资源是Stephen Toub的ExecutionContext vs. SynchronizationContext

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


这篇文章主要讲解了“WPF如何实现带筛选功能的DataGrid”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“WPF...
本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这...
Some samples are below for ASP.Net web form controls:(from http://www.visualize.uk.com/resources/asp
问题描述: 对于未定义为 System.String 的列,唯一有效的值是(引发异常)。 For columns not defined as System.String, the only vali
最近用到了CalendarExtender,结果不知道为什么发生了错位,如图在Google和百度上找了很久,中文的文章里面似乎只提到了如何本地化(就是显示中文的月份)以及怎么解决被下拉框挡住的问题,谈
ASP.NET 2.0 page lifecyle ASP.NET 2.0 event sequence changed a lot since 1.1. Here is the order: App
静态声明: ' Style="position: relative" AppendDataBoundItems="True"> (无 或 空 或
以下内容是从网络上搜集资料,然后整理而来的。不当之处,请不吝指教。(The following were from network, and edited by myself. Thanks in a
Imports System Imports System.Reflection Namespace DotNetNuke '*********************************
Ok so you have all seen them: “8 million tools for web development”, “5 gagillion tools that if you