Альтернатива словарю в сервисе WCF - PullRequest
0 голосов
/ 10 июля 2011

У меня есть веб-служба WCF, которая, когда пользователь подписывается (это служба push-уведомлений WP7), добавляет в словарь Guid и Uri.Моя проблема в том, что когда приложение останавливается или перезапускает словарь, очевидно, опустошается.

Я хотел бы получить предложения о простых и простых альтернативных способах хранения данных при минимизации требований к памяти.Это приложение работает на IIS7 с .net4.

Мне просто нужно добавить в «словарь» и проверить, содержит ли оно значение.довольно просто на самом деле.

Ответы [ 2 ]

2 голосов
/ 10 июля 2011

Что ж, чтобы сохранить данные, присутствующие при перезапуске сервера, вам, очевидно, необходимо сохранить их.

Здесь есть две очевидные возможности:

  • Использование базы данных
  • Хранение данных в файле

Я бы предположил, что лучшим подходом здесь будет база данных - гораздо проще заставить ее работать с несколькими серверами WCF и т. Д., Чем читать иобновление общего файла.

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

1 голос
/ 10 июля 2011

Когда вы сохраняете что-то в Словаре в своем коде, оно сохраняется только до продолжительности выполнения кода.Другими словами, время жизни вашего словаря ограничено выполнением ваших кодов.Для более длительного хранения необходимо использовать другие механизмы, такие как Session или Application .Но если вы хотите, чтобы срок службы вашего хранилища проходил , утилизация приложений , тогда вам следует подумать о сохранении ваших данных в базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...