这是一个两部分问题:
>有人可以提供ASP.NET / .NET属性列表,这些属性通常是与ExecutionContext一起流动的线程本地吗?
HttpContext.Current?
Thread.CurrentContext?
Thread.CurrentPrincipal中?
Thread.CurrentCulture?
我可以依靠什么属性来存活/持续异步/等待?
还有什么?
>有没有办法添加将使用ExecutionContext自动流动的特定于应用程序的上下文信息?就像是
var ec = ExecutionContext.Capture(); ec.CustomContext["MyCustomContext"] = ACustomContext;
解决方法
最好的资源是由Stephen Toub提供的
ExecutionContext vs. SynchronizationContext.没有像您要查找的属性列表.
ASP.NET实际上使用SynchronizationContext来传输HttpContext.Current和treats Thread.CurrentPrincipal
rather oddly.
您可以使用LogicalSetData / LogicalGetData添加自己的上下文.但是,您应该只存储不可变数据.我记录了这个on my blog.