Я хотел бы рассмотреть возможность использования службы Windows, через которую веб-приложение (а) может обмениваться данными через WCF.
Это даст вам большую степень гибкости;это позволяет вам выполнять дополнительную обработку данных вне процесса (например, агрегировать статистику присутствия, например, «50 человек в вашей расширенной сети находятся в сети»).Служба Windows также полностью освобождает вас от любых ограничений, которые существуют в механизмах состояния процесса.Это позволит вам свободно балансировать нагрузку и позволить нескольким приложениям потреблять свои данные.
Если данные являются одноразовыми, отключите службу без сохранения состояния.В противном случае сохраните некоторые / все / периодические данные в базе данных, что позволит вам восстановить их, даже если служба и / или веб-сайты выйдут из строя.
Наконец, если вы создаете приложение, которое зависит от службы, оно является потенциальной единственной точкой отказа.Лучшие установки используют базу данных или механизм синхронизации для обеспечения избыточности внешних служб.
Редактировать: чтобы более подробно ответить на исходный вопрос, статические члены доступны для всех HTTP-запросов к домену приложения, которыеВаш сайт ASP.Net работает. Для чего бы то ни было, статические переменные также могут быть обозначены (через атрибуты) с различными уровнями доступа, например ThreadStaticAttribute
.
На практике статические переменные являются дешевыми/ слабое решение.Вы должны вручную синхронизировать доступ, и у вас мало контроля над истечением срока действия.Вы можете внедрить решение на основе кэша с нулевыми дополнительными усилиями или перейти к вышеупомянутой методологии вне процесса для поддержки требований предприятия.