Глобальные настройки для сайта ASP.NET - PullRequest
1 голос
/ 30 мая 2011

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

Тип настроек, таких как «сколько записей показывать на странице», включать / отключать объекты, я планирую хранить их в базе данных, но не хочу, чтобы при каждом запросе к базе данных приходилось вызывать базу данных настройки, особенно когда они не меняются. Конечно, это все время делается на CMS, как вы думаете, это должно быть сделано. Я думаю, что SqlCacheDependency, но никогда не настраивал это. Есть ли другой способ?

Также на платах есть возможность сохранить эти настройки в web.config и создать для него графический интерфейс, проблема в том, что администрация сайта работает в своем собственном пространстве имен и имеет собственный web.config, поэтому вопрос вот если можно манипулировать web.config вне пространства имен приложения.

Спасибо, ребята.

Ответы [ 2 ]

1 голос
/ 30 мая 2011

Я бы предложил вам прочитать значения из БД в Application_Start и сохранить эти значения в Application object. Таким образом, вам не нужно каждый раз заходить в БД, чтобы прочитать значения. Он только прочитает и сохранит значения один раз при запуске приложения.

void Application_Start(object sender, EventArgs e)
{
  Application["name"] = ""; Value from DB
  ......................
  ......................
}

Примечание: Не рекомендуется манипулировать значениями в web.config using UI, потому что, как только пользователь пытается изменить любое значение из пользовательского интерфейса, это меняет значение в web.config, все ваши пользователи сеанс будет terminated.

Другое примечание: Каждый раз, когда вы изменяете информацию и обновляете свою БД, вам также необходимо будет обновить объект уровня приложения.

0 голосов
/ 30 мая 2011

Во-первых, я бы не стал беспокоиться о подсчете вызовов базы данных, пока у вас не возникнет идея, что ваши вызовы базы данных действительно снижают производительность.Современные базы данных работают быстро, особенно для хорошо разработанных запросов для скалярных значений.Многие популярные пакеты читают конфигурацию при каждом запросе, и кажется, что они довольно хорошо масштабируются.

Что касается обновления этих значений, вы можете довольно легко обновить файл web.config из другого приложения, если у вас есть необходимые разрешения.- это определенно потребует полного доверия, что исключает большинство сценариев хостинга.Следует помнить, что, хотя VS рассматривает этот файл как особый, это всего лишь файл XML, поэтому применяются обычные приемы для обновления файла XML.Поскольку вы делаете это из другого приложения, оно будет работать.Но предупреждение Мухаммеда о сбросе пользовательских сессий будет относиться к «жертве» обновления.Что может быть хорошо в зависимости от того, что вы меняете.

...