System.Web.HttpContext.Current上的混淆
因此,在silverlight应用程序的服务器代码中,我看到对System.Web.HttpContext.Current.User.Identity.Name
多个引用。 问题是:如果System.Web.HttpContext.Current
是静态属性,那么如何使用不同的System.Web.HttpContext.Current
对象处理不同的并发请求?
我想我在这里错过了一些简单的东西。
每个请求都由一个线程提供服务。 换句话说,一个线程一次只能为一个请求服务。
现在HttpContext.Current
由CallContext.HostContext
支持,它实际上是一个线程静态属性(属性getter / setter基于每个线程工作)。
获取或设置与当前线程关联的主机上下文。
这就是HttpContext.Current
总是为每个请求设置正确的上下文,即使多个请求并行处理 – 当前线程与HttpContext相关联,而HttpContext又与特定请求相关联。
它是静态的,但在当前的请求上。
“获取或设置当前HTTP请求的HttpContext对象。”
请参阅: msdn- HttpContext.Current属性