Существуют ли какие-либо серверные объекты для сохранения значения для всех пользователей в c #?

#c# #asp.net-mvc

#c# #asp.net-mvc

Вопрос:

Я хочу сохранить некоторое значение, для этого мне нужно проверить на стороне всех пользователей (возможно, у всех есть доступ с разных компьютеров), что значение будет равно true или false, затем нужно выполнить некоторые дальнейшие действия.

Я попытался сохранить его в объекте in ‘ session ‘, но он работает только для одной машины.

 string InprocValue = Session["Inproc"]==null?"": Session["InprocLeadMobileNo"].ToString();
if (InprocValue == false)
{
    Session["Inproc"] = true;;
}
  

А также мне нравится избегать частого обхода базы данных.
итак, у нас есть какие-либо объекты на стороне сервера, где размещено приложение, тогда мы можем легко извлечь его с любой стороны пользователя и поместить в In-Process на основе условий true / false.

Комментарии:

1. Вы можете использовать Application вместо Session . Это общее для всех пользователей.

2. Я уже пробовал подобное приложение [«Inproc»]. toString(); затем выдается сообщение об ошибке: «Имя ‘Application’ не существует в текущем контексте.

3. Я бы сказал, реализовать надлежащий механизм кэширования за пределами памяти вашего сервера приложений

4. Вы работаете на нескольких серверах? Если да, то вам понадобится какой-нибудь центральный экземпляр для хранения этого значения, будь то база данных или, возможно, кэш Redis, или файл на общем сетевом ресурсе. Если нет, как заявил Каран, вы можете использовать httpContext.Application .

5. Какова ваша технология разделения? Asp.net веб-форма, asp.net mvc, asp.net ядро mvc?

Ответ №1:

Вам нужно было бы изменить режим сеанса с «InProc» либо на StateServer, либо на SQLServer.

Обзор режимов состояния сеанса см. в этой статье: http://msdn.microsoft.com/en-us/library/ms178586.aspx

Для сервера состояния сеанса ознакомьтесь с Windows Server AppFabric, высокопроизводительным кэшем в памяти, который также может служить поставщиком состояния сеанса для ASP.NET: http://msdn.microsoft.com/en-us/windowsserver/ee695849