Azure classi c конфигурация облачного сервиса локальный против облака - PullRequest
1 голос
/ 16 января 2020

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

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

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

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

1 Ответ

1 голос
/ 16 января 2020

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

Проблема № 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 et c.). Таким образом, я получу отдельный файл csdef для каждой среды.

...