Как реализовать «Сайт в обслуживании» для веб-сайта Windows Azure? - PullRequest
7 голосов
/ 10 июля 2010

В одном из наших решений для веб-сайтов ASP.NET мне нужно развернуть обновление, которое может занять разумное время.Он порождает несколько рабочих и проектов Windows Azure, поэтому исключен простой обмен развертыванием.

По сути, я просто думаю о способе перенаправления всех веб-запросов на страницу "Сайт находится на обслуживании" для некоторыхвремя , если проект находится под Windows Azure .

Мне известен трюк app-offline.htm с IIS, но я сомневаюсь, что веб-роль Azure позволит этоодин для развертывания или запуска (он раскручивает домен приложения).

1 Ответ

4 голосов
/ 10 июля 2010

После некоторого дополнительного исследования кажется, что одним из вариантов реализации является создание отдельного веб-проекта (пакет развертывания и веб-роль), который перенаправляет все запросы на одну страницу обслуживания. Модуль Url Rewrite (установлен по умолчанию в Azure) можно настроить следующим образом:

<rules>
  <rule name="Redirect exclusions" stopProcessing="true">
    <match url="\.(css|gif|png|htm|jpg)$" />
  </rule>
  <rule name="Redirect to index" stopProcessing="true">
    <match url="^(.*)$" />
    <action type="Redirect" url="/index.htm" />
  </rule>
</rules>

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

...