#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?