Обновление веб-приложения в IIS - лучшие практики - PullRequest
1 голос
/ 31 марта 2009

Каковы рекомендации по обновлению веб-приложения в IIS?

Первая страница, которую вы видите при посещении нашего приложения, - это страница входа.

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

В файле web.config мы отслеживаем, обновляется ли приложение (update = [true | false], а затем - authentic_event:

if (updating) 
{

   if (User.IsInRole("admin"))

   {

      redirect to main web app...

   }
   else
   {     

     redirect to web being updated page....

   }

}
else 
{

   redirect to main web app..

}

Любой совет будет оценен по достоинству ..

Ответы [ 3 ]

9 голосов
/ 23 апреля 2009

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

1 голос
/ 31 марта 2009

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

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

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

1 голос
/ 31 марта 2009

Похоже, у вас все получилось.

if (WebConfigurationManager.AppSettings["updating"]=="true") 
   if (User.IsInRole("admin"))
       Response.Redirect("~/Main.aspx");
   else
       Response.Redirect("~/Updating.aspx");
else
   Response.Redirect("~/Main.aspx");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...