ASP.net: лучший способ хранения глобальных настроек - PullRequest
1 голос
/ 26 апреля 2011

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

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

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

Заранее спасибо,

Энтони Ф Греко

Ответы [ 3 ]

3 голосов
/ 26 апреля 2011

Если вы хотите минимизировать обращения к базе данных, я бы сказал, поместите значения в базу данных, а затем кешируйте их в своем приложении.В зависимости от ваших потребностей, возможно, срок действия кэша истекает каждые 30 минут, поэтому при изменении значения БД оно будет применено не более, чем через 30 минут, и вы будете выполнять вызов БД каждые 30 минут (или при необходимости, например, когдаваше приложение перезапустится).Или вы можете использовать зависимость от кэша SQL, но я никогда этого не делал, поэтому я не знаю подводных камней этого метода.

2 голосов
/ 26 апреля 2011

Мы перенесли все наши настройки приложения из web.config в базу данных, как видно ЗДЕСЬ.

Мы сделали это, чтобы обойти проблемы с продвижением кода с Dev на Test на QA на Prod, но его можно использовать по другим причинам.

Наш кэшируется при запуске приложения, а затем каждые 5 минут проверяет, обновлялся ли один счетчик в таблице. Если это так, он обновляет все настройки.

0 голосов
/ 26 апреля 2011

Я бы пошел с @Joe Enos За исключением того, что я бы использовал XML-файл или .ini, так как вы хотели бы ограничить ваши вызовы БД.

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