6

我对 Web 开发和 ASP.net 很陌生,但我想知道以下问题:

如果我在网页上声明一个静态变量并且多个用户同时访问同一页面。这个静态变量是每个用户独有的还是会干扰不同的用户?

谢谢

4

2 回答 2

7

是的,它会干扰用户之间以及单个用户的并发请求之间。除非您非常确定自己在做什么,否则请避免在 ASP.NET(和大多数其他开发)中使用静态字段。

考虑将会话状态用于您在此处所做的事情,或者作为请求本身的一部分(表单数据、cookie 等)。

于 2012-07-10T12:51:32.153 回答
2

这个静态变量对每个用户都是唯一的吗

不。

它会干扰不同的用户吗?

是的。

您可能想要使用其他一些持久性介质,例如会话状态、缓存等。

有些人[ThreadStatic]在 ASP.NET 中的字段上使用该属性,以便它对每个用户都是唯一的,但这是危险的,不应该这样做。不惜一切代价避免这种情况。我只在其他人推荐它的情况下提出它。

于 2012-07-10T12:51:55.367 回答