如果我有一个静态变量,那么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检查变量状态的值时,它是真还是假?
静态变量将在所有代理调用中共享,只要它不是网络花园并且是进程中实现即可。静态变量的作用域为应用程序域。
在上述情况下,客户端B将看到客户端A设置的值。
如果它是一个web场,那么静态变量将是每个web服务器的,并且可能在web请求中显示奇怪的行为。
一般来说,由于锁定等原因,建议对跨web请求的可写共享值格外谨慎。