如果我有一个静态变量,那么WebServices是无状态的

本文关键字:WebServices 状态 那么 有一个 静态 变量 如果 | 更新日期: 2023-09-27 17:59:50

假设我有一个带有一堆方法的web服务,该web服务上有一个公共共享变量,如果我收到客户端a的请求,他更改了该变量的值,那么客户端B会看到客户端a更改的值吗?

让我试着更好地解释自己,例如

假设我有一个变量:

Public Shared state As Boolean = False(Visual Basic)
public static bool state = false; (C#)

然后客户端A进入

 state = true (VB)
 state = true; (C#) 

当客户端B检查变量状态的值时,它是真还是假?

如果我有一个静态变量,那么WebServices是无状态的

静态变量将在所有代理调用中共享,只要它不是网络花园并且是进程中实现即可。静态变量的作用域为应用程序域。

在上述情况下,客户端B将看到客户端A设置的值。

如果它是一个web场,那么静态变量将是每个web服务器的,并且可能在web请求中显示奇怪的行为。

一般来说,由于锁定等原因,建议对跨web请求的可写共享值格外谨慎。