Что я могу сделать, чтобы использовать Session на сервере общего хостинга с балансировкой нагрузки - PullRequest
1 голос
/ 05 октября 2010

Мой сайт / приложение в ASP.NET. Я использую традиционный объект Session, когда люди подключаются, поэтому у них есть свои предпочтения и т. Д.

Моя проблема в том, что сессии были потеряны очень часто. Я обнаружил, что моя хостинговая компания использует балансировку нагрузки на своих серверах, поэтому один запрос на моем веб-сайте может быть на одном сервере, а другой - на другом.

Я попытался сохранить данные сеанса в базе данных SQL Server, но быстро обнаружил, что не могу создать необходимую базу данных на своем общем сервере, потому что в моем пакете только одна база данных. Кроме того, нет никакой гарантии, что оставшаяся часть сценария сможет работать.

Мои вопросы: есть ли другой способ обойти эту проблему? Стоит ли покупать другую базу данных только для этого? Есть ли другой тип сеанса, который я мог бы использовать? Могу ли я использовать что-то еще вместо сессии, чтобы отслеживать моего пользователя, когда он подключен на моем сайте?

Я действительно открыт для любого типа решения! Большое спасибо!

Ответы [ 3 ]

2 голосов
/ 05 октября 2010

ASP.NET позволяет указать способ обработки управления сеансом.

Как вы обнаружили, вы можете использовать SqlServer mode - но это не обязательно указывает на отдельную базу данных, она может использовать ту же базу данных, что у вас уже есть.

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

0 голосов
/ 05 октября 2010

Вы можете управлять своими собственными сессиями.Вам нужно сгенерировать случайный sessionId и сохранить его в файле cookie.Вы можете использовать существующую таблицу в вашей базе данных.Просто создайте свой собственный класс для чтения и записи данных сеанса на основе значения в cookie.

0 голосов
/ 05 октября 2010

Это похоже на возможную конфигурацию с вашим хостинг-провайдером.Попробуйте связаться с ними и спросить об этом.Им может потребоваться настроить что-то в разговорной речи как «липкие сеансы» на их балансировщике нагрузки.

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

...