2013-03-09 2 views
1

Простой вопрос, но после нескольких часов поиска я не нашел простого ответа. Есть ли простой способ обмена глобальными переменными среди всех сеансов на веб-сайте ASP.NET MVC 4, работающем на нескольких серверах?Глобальные переменные ASP.NET в веб-форме

На одном сервере я бы просто создал статический класс с соответствующей синхронизацией потоков, обернутой вокруг элементов доступа. Но это, очевидно, не синхронизирует серверы.

Вы могли бы подумать, что так легко сохранять состояние сеанса и синхронизировать его между серверами, что вы могли бы сделать то же самое с состоянием приложения. Но все, что я прочитал, говорит, что состояние приложения является локальным сервером.

+3

Как сохранить переменные состояния приложения в базе данных? – Tim

ответ

0

Похоже, что пришло время перенести некоторые данные в постоянное хранилище (база данных, файловая система) и, возможно, добавить слой кеширования (мы счастливы AppFabric пользователей) сверху для производительности.

1

Если вы имеете в виду для хранения состояния сеанса, у вас есть 3 варианта:

  • In-Process Storage (который звучит как то, что вы используете)
  • состояния сеанса служба
  • Microsoft SQL Server

Последние 2 представляют собой «общие глобальные переменные», которые вы ищете. Обратите внимание, что служба состояния сеанса является единственной точкой отказа. Хранилище состояний сеанса SQL Server может быть избыточным, если ваша конфигурация SQL избыточна.

Смотрите также:

Если вы хотите, чтобы перейти к другим решениям, которые изначально не поддерживаются ASP.Net, вы можете использовать:

Примечание Я не использовал ни Memcached или Redis, но я слышал многое.

0

Ответ заключается в том, что вам нужна общая база данных, где вы пишете и читаете свои общие переменные.

С помощью обычной общей базы данных вы можете использовать простой XML-файл, но это должен быть файл, общий общий файл среди ваших серверов, это самый простой способ.

Смежные вопросы