【问题标题】:How HttpContext works in .NETHttpContext 如何在 .NET 中工作
【发布时间】:2011-11-13 13:16:37
【问题描述】:

我想了解 httpcontext 如何在 .NET 中工作的细节?

我无法理解的是 HttpContext 的类有一个静态 HttpContext 对象的字段。那么对于来自客户端的每个请求,是否都会创建一个 httpcontext 实例?为什么它定义为 static ?是不是说一个应用只能有一个httpcontext?

我很困惑,所以提问的方式可能有点复杂。我希望它是可以理解的。

提前致谢,

【问题讨论】:

    标签: asp.net .net httprequest httpcontext


    【解决方案1】:

    当您访问静态成员时,它会解析当前请求相对于线程

    不,这并不意味着只有一个线程,就像 Thread.Current 并不意味着只有一个线程一样。每个请求都有不同的 HttpContext。

    作为做类似事情的一种简单方法(不过我不知道它是否以这种方式实现);

    [ThreadStatic]
    public static string TryMeFromDifferentThreads;
    

    【讨论】:

    • .net 如何决定在另一个线程中创建 httpcontext?例如,如果应用程序当时有一个不为空的 httpcontext,如果出现另一个请求,那么它会在另一个线程上创建另一个 httpcontext 吗?感谢您的回答。
    • @Kaplan 基本上是的,但更复杂 - 单个请求实际上可以在某些特定点在线程之间跳转(主要与异步请求/响应上下文访问有关)
    • 我想了解它的细节,有什么参考资料可以建议我阅读吗?感谢您的精彩解释。
    • @kaplan 我认为大部分是“实施细节”的意思:可能会发生变化。不过,这种行为;很简单:current 为您提供您需要担心的问题。您当然可以在 .Current 上运行反射器
    猜你喜欢
    • 2018-05-28
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多