Конфигурация классического облачного сервиса Azure Local vs cloud

Проблема № 1: У меня есть классический облачный сервис, выполняющий одну роль веб-сайта. Я хотел бы провести различие между тем, как он отлаживается локально, и тем, как он развертывается в облаке. В частности, я бы хотел, чтобы локальный сайт работал по HTTP, а облачный сервис - по HTTPS. Основная причина этого заключается в том, что нам не нужно устанавливать один и тот же сертификат на всех машинах разработчиков. Однако конечные точки определены в общем «ServiceDefinition.csdef», а НЕ в двух файлах «ServiceConfiguration.cscfg» («локальный» и «облачный»). Итак, как мне установить разные конечные точки для локальных и облачных?

Проблема № 2: Я хотел бы, особенно в облаке, иметь сайт, работающий по HTTP, который просто перенаправляет пользователя на сайт HTTPS. Как бы я это настроил?

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

Заранее большое спасибо!

Всего 1 ответ


Частичный ответ на ваши вопросы:

Проблема № 2: Я хотел бы, особенно в облаке, иметь сайт, работающий по HTTP, который просто перенаправляет пользователя на сайт HTTPS. Как бы я это настроил?

Для этого вы можете просто положиться на преобразования web.config. В вашем web.release.config вы можете установить правило перенаправления, которое будет перенаправлять http-запросы на https. Что-то вроде следующего:

<rewrite>
  <rules>
    <rule name="HTTP/S to HTTPS Redirect" enabled="true" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{HTTPS}" pattern="^OFF$" />
      </conditions>
      <action type="Redirect" url="https://{SERVER_NAME}/{R:1}" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

Подобная вещь просто не будет присутствовать в вашем web.debug.config (или web.config).

В частности, я бы хотел, чтобы локальный сайт работал по HTTP, а облачный сервис - по HTTPS.

Для этого в прошлом, когда я работал с облачными сервисами, я в основном создавал отдельные облачные проекты для каждой среды (WebApp.Azure.Dev, WebApp.Azure.Prod и т. Д.). Таким образом, я бы получил отдельный файл csdef для каждой среды.


Есть идеи?

10000