如何忽略“始终在线”的仅HTTPS Azure应用服务自定义域设置

问题描述

我有一个作为Azure AppService运行的ASP.Net Core 2.2站点。作为配置的一部分,我有一个自定义域,该域启用了仅HTTPS 设置。

我还在我的Appservice上启用了始终在线设置。

根据本文 https://ruslany.net/2017/11/most-common-deployment-slot-swap-failures-and-how-to-fix-them/启用仅HTTPS 时,会忽略始终在线设置,因此,我的站点总是从第一个调用开始进行冷启动。

根据同一文章,如果处理了{warmup_request},则可以在web.config中设置规则条件以不处理 Redirect to HTTPS 规则。

但是,我的仅HTTPS 是在Azure的自定义域中设置的,而不是在web.config中的规则。

我正在使用以下代码在startup.cs中设置RouteOptions:

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>

在此方面的任何帮助将不胜感激

谢谢

解决方法

从撰写本文开始,“ https仅”已作为应用程序服务的内置功能添加,因此不再需要使用此重写规则。

关于如何最小化应用程序的冷启动-您可能要考虑按照App Service Warm-Up Demystified

中的说明将appinit配置添加到web.config中。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...