Как игнорировать настройку пользовательского домена Azure Appservice только для HTTPS для Always on

#asp.net-core #https #azure-web-app-service #app-startup #application-warmup

#asp.net-core #https #azure-web-app-service #запуск приложения #прогрев приложения

Вопрос:

У меня есть ASP.Net Основной сайт 2.2, работающий как служба приложений Azure. Как часть конфигурации, у меня есть пользовательский домен с включенным параметром только HTTPS.

У меня также включен параметр Always on в моем Appservice.

Согласно этой статье https://ruslany.net/2017/11/most-common-deployment-slot-swap-failures-and-how-to-fix-them / параметр «Всегда включен» будет игнорироваться, если включен только HTTPS, и в результате мой сайт всегда выполняет холодный запуск с первого вызова.

Согласно той же статье, в web.config можно задать условие правила, чтобы не обрабатывать перенаправление на правило HTTPS, если обрабатывается {warmup_request} .

Однако мой HTTPS установлен только для пользовательского домена в Azure, а не, как правило, в web.config.

Я устанавливаю RouteOptions в startup.cs со следующим кодом:

 services.Configure<RouteOptions>(options =>
{
    options.LowercaseUrls = true;
});
  

и считаю, что условие правила можно выполнить и здесь, используя options.ConstraintMap() , но я не уверен в синтаксисе или методе, необходимых для представления следующего:

   <match url="(.*)" />
  <conditions>
    <add input="{WARMUP_REQUEST}" pattern="1" negate="true" />
    <add input="{REMOTE_ADDR}" pattern="^100?." negate="true" />
    <add input="{HTTPS}" pattern="^OFF$" />
  </conditions>
  <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
  

Любая помощь в том, как это сделать, будет оценена по достоинству

Спасибо

Ответ №1:

С момента написания этой статьи «только https» был добавлен как встроенная функция служб приложений, поэтому больше нет необходимости использовать это правило перезаписи.

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

Комментарии:

1. Спасибо за ответ @ruslany Есть ли Azure appsetting, который я могу использовать вместо web.config?