是否有人愿意解释或指向解释静态类和方法的范围如何与 ASP.NET 用户会话的范围交互的文章。
这是解释我的问题的更具体的情况:
- 用户 A 登录到一个 asp.net 网站。
- 在做某事时,用户 A 使用一种静态方法来初始化一些数据。
- 用户 B 登录到同一个 asp.net 网站。
- 用户 B 使用相同的静态方法。
一旦用户 B 击中数据,数据是否已经初始化?
另外,如果用户 A 的 asp.net 会话在用户 B 访问网站之前过期怎么办?
是否有人愿意解释或指向解释静态类和方法的范围如何与 ASP.NET 用户会话的范围交互的文章。
这是解释我的问题的更具体的情况:
一旦用户 B 击中数据,数据是否已经初始化?
另外,如果用户 A 的 asp.net 会话在用户 B 访问网站之前过期怎么办?
只要进程正在运行,静态数据就会存在。它附加到类型。
如果初始化的数据在静态上下文中,那么当用户 B 点击该方法时,它已经被初始化了。
会话在这里不相关 - 只有过程。
如果进程被回收,则必须重新初始化数据。
检查这些帖子:为什么我的 ASP.Net 静态函数的“上下文”在用户会话之间交叉?
http://msdn.microsoft.com/en-us/library/ms173138(v=vs.100).aspx
简而言之:
一旦用户 B 击中数据,数据是否已经初始化?
是的
另外,如果用户 A 的 asp.net 会话在用户 B 访问网站之前过期怎么办?
用户 B 将访问用户 A 初始化的数据
静态数据在 webapp 的整个应用程序域之间共享。它在您的 web 应用程序中服务请求的所有线程之间共享,它不以任何方式绑定到会话/线程/用户,而是绑定到整个 web 应用程序。