web请求中的静态变量

本文关键字:静态 变量 请求 web | 更新日期: 2023-09-27 18:05:43

静态公共类中的静态公共变量如何在c# mvc web项目中的web请求之间表现。这些类型的变量在请求之间是否保持它们的值?

web请求中的静态变量

用最简单的形式回答你的问题;是的。任何静态内容都将保留:

    请求之间
  • 所有用户

它们不会在同一应用程序的不同实例之间共享(例如在负载均衡场景中),并且它们将在应用程序池回收时失去它们的值。

一般来说,尝试使用静态变量来持久化状态是一个坏主意,除非你有非常特殊的理由这样做。

如果您正在考虑使用静态变量在请求之间保存特定于用户的数据,请不要使用。因为它们是跨线程共享的(因此是跨请求和用户共享的),所以一旦有多个用户,就会引入竞争条件。

选择另一种形式的存储,例如会话状态、cookie或者更好的是数据库。