1

今天我对 2 个与 ASP.net 的 HttpApplicationState 相关的问题感到困惑。我的问题如下

  1. 如果我使用 StateServer 进行会话管理(我想用于我的网络花园部署的 out proc 会话管理内容),假设HttpApplicationState (我通过 System.Web.UI.Page.Application 属性访问)是否安全) 也像 Session 一样存储在 StateServer 中?因此,如果我的工作进程 A 将值“10”写入 Page.Application,那么稍后在工作进程 B 中运行的另一个请求必须看到同一个键的这个“10” - 是否正确?

  2. 我的一位开发人员同事告诉我,他在测试中发现,在 StateServer 场景中,如果他将 100 个键值条目插入到 Page.Session 中,那么当他尝试从不同的请求中读取任何键时,workerprocess将全部 100 个条目带入活动的工作进程内存空间,然后提供请求实际询问的密钥。是真的吗?

如果有人可以帮助我消除我在这方面的困惑,将不胜感激。

谢谢!

4

2 回答 2

3
  1. StateServer 仅支持 Session 状态,Application 状态仅限于 AppDomain。

  2. StateServer 存储 Session 的序列化。它无法知道如何访问特定的键值。当被访问时,会话被重新注入需要它的应用程序中,并在请求期间用作正常的会话数据。

于 2009-06-18T10:23:36.743 回答
0
  1. 据我所知,进程外状态服务器不存储 HttpApplicationState 数据。您可以很容易地对此进行测试以确定,但我怀疑它确实如此。

  2. 我也不认为这是真的。会话存储基本上是一个哈希表。在哈希表中查找单个键应该只返回关联的值。你不应该看到你描述的行为。同样,您应该能够轻松地对此进行测试。

于 2009-06-18T10:20:23.193 回答