是否有任何服务器端对象用于保存c#中所有用户的值?

是否有任何服务器端对象用于保存c#中所有用户的值?,c#,asp.net-mvc,C#,Asp.net Mvc,我想保存一些值,通过这个,我需要在所有用户的(可能所有来自不同机器的访问)的一侧检查值是真的还是假的,然后需要继续一些进一步的操作 我尝试将它保存到“会话””对象中,但它仅适用于一台机器 string InprocValue = Session["Inproc"]==null?"": Session["InprocLeadMobileNo"].ToString(); if (InprocValue == false) { Session["Inproc"] = true;; } 而且我

我想保存一些值,通过这个,我需要在所有用户的(可能所有来自不同机器的访问)的一侧检查值是真的还是假的,然后需要继续一些进一步的操作

我尝试将它保存到“
会话”
”对象中,但它仅适用于一台机器

string InprocValue = Session["Inproc"]==null?"": Session["InprocLeadMobileNo"].ToString();
if (InprocValue == false)
{
    Session["Inproc"] = true;;
}
而且我喜欢避免频繁的数据库往返。
因此,如果有任何服务器端对象作为应用程序的宿主,那么我们就可以轻松地从任何用户端检索它,并根据真/假条件将其放入进程中。

您需要将会话模式从“InProc”更改为StateServer或SqlServer

有关会话状态模式的概述,请参阅本文:


对于会话状态服务器,请查看Windows server AppFabric,这是一种高性能内存缓存,也可以用作ASP.NET的会话状态提供程序:

您可以使用
应用程序
而不是
会话
。这对于所有用户来说都很常见。我已经尝试过像Application[“Inproc”].ToString();然后获取一个错误:“当前上下文中不存在“应用程序”名称。我想说的是,在应用程序服务器内存之外实施适当的缓存机制。您是否在多台服务器上运行?如果是,则需要一些中心实例来存储此值,可以是数据库,也可以是Redis缓存,或者是网络共享上的文件。如果没有,正如Karan所说,您可以使用
httpContext.Application
。您的服务器技术是什么?Asp.net网络表单、Asp.net mvc、Asp.net mvc核心?