2014-11-27 2 views
1

У меня есть веб-приложение с системой входа в систему, которая использует службу wcf. Пользователь вводит свое имя пользователя/пароль для входа в систему, затем мы создаем уникальный токен для пользователя, а затем токен сохраняется в куки-браузере браузера, чтобы он был в сети. Каждый раз, когда пользователь отправляет запрос, его токен отправляется вместе с запросом. Мы сохраняем все токены в базовом List в служебной памяти. Теперь я спрашиваю себя, если это лучший способ сделать это. Будет ли iis утилизировать память приложения? Я прочитал this вопрос о сохранении списка в службе wcf, и похоже, что я должен избегать использования списка в памяти. Что является лучшей альтернативой этому?Лучший способ сохранить список в служебной памяти wcf

Благодаря

ответ

1

Да, если жилье App Pool ваш WCF Service перерабатывается, вы потеряете все, что вы кэшированные в памяти, так что вы будете также нуждаться в сохраняемости запасной вариант (например, СУБД или базы данных NoSQL), которая будет быть повторно загружены при возобновлении.

Вы не говорите, что хотите сохранить вместе с токеном. Если это всего лишь токен строки, тогда может быть лучше HashSet<string>, а если есть другие данные, то лучше будет работать ConcurrentDictionary<string, Whatever>.

Если предположить, что в качестве входа в систему пользователей/выхода из системы вашей службы, что маркер сбора нужно будет мутировать, что означает, что concurrency issues нужно учитывать, (у вас есть, что с ConcurrentDictionary)

и вы Также необходимо рассмотреть эффекты устаревших токенов - вы захотите удалить/удалить неиспользуемые токены (память и база данных).

+0

Спасибо за ответ, если я хорошо понимаю, нужно сделать параллельный список, и каждый раз, когда элемент добавляется/удаляется, то же самое делается в базе данных. Когда приложение перезагружается, мне нужно перезагрузить список в памяти. это оно? –

+0

Это в значительной степени - из интереса, похоже, вы сравниваете нечто похожее на Asp.Net 'SessionState' - [эту статью] (http://blogs.msdn.com/b/wenlong/archive/2010/02/ 21/using-asp-net-sessions-from-wcf.aspx), возможно, стоит прочитать? – StuartLC

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