我一直在努力确定在请求完成后维护对HttpContext的只读引用是多么安全。具体来说,我希望在执行请求时获取对HttpContext.Current的引用,然后将对上下文的引用放入内存中的队列,以便稍后在另一个线程上进行评估(可能最多几秒钟)
显然,尝试使用并尝试写入context.Response将无法工作,我对此并不特别感兴趣。相反,我有兴趣在context.Request属性和上下文本身的一些其他值上读取一些值,例如: context.Timestamp,context.Items,也许还有其他一些。
初步测试表明我可以做到这一点,但我正在尝试有意识地编程,而不是巧合。任何人都可以指出任何文档(或者可能是博客文章或来自Jon Skeet的文章),表明在HTTP请求完成后可以维护引用吗?
答案 0 :(得分:2)
不,这不安全,但它与线程无关。
它是Http 上下文 。当前。那个上下文就像当前请求的"上下文一样"。
请求结束后请不要使用此功能!
上下文中的各种IDisposable资源将被处理掉,因此不要使用它们。在请求期间有效的任何其他内容都无效,因为请求超过 。
一旦确定了所需的部分,请复制这些部分并保存。