一旦没有为Web应用程序设置自定义域,Azure App Service AlwaysOn就能完美运行.一旦添加了自定义域以及URL重写规则以将所有传入请求重定向到它,应用程序在一段时间不活动后开始缓慢响应.日
没有自定义域的日志:
2017-06-20 17:17:02 ZZTESTSITE GET / X-ARR-LOG-ID=743965b6-d3e2-42b9-9353-7772f9fbc898 80 - ::1 AlwaysOn ARRAffinity=b5289afa9cd711b67c1fe9137a6e3ff232f80bd3fa1bd96e9fc89992472b4e57 - zztestsite.azurewebsites.net 200 0 0 11433 652 15
使用自定义域记录
2017-06-21 13:28:52 ZZTESTSITE GET / X-ARR-LOG-ID=ffcd5992-5019-48ca-a386-76443a8c7226 80 - ::1 AlwaysOn ARRAffinity=b5289afa9cd711b67c1fe9137a6e3ff232f80bd3fa1bd96e9fc89992472b4e57 - zztestsite.azurewebsites.net 301 0 0 553 652 46
URL重写规则:
<rule name="Redirect requests from default azure websites domain to custom one" stopProcessing="true"> <match url="(.*)" /> <conditions logicalGrouping="MatchAny"> <add input="{HTTP_HOST}" pattern="^zztestsite\.azurewebsites\.net$" /> </conditions> <action type="Redirect" url="http://mycustomdomain.com" redirectType="Permanent" appendQueryString="false"/> </rule>
此外,一旦启用了SSL并添加了另一个规则以将所有请求重定向到HTTPS,就会出现同样的问题.
我该如何解决这个问题?我发现了两个可能的方向:
>按AlwaysOn以ping自定义域(可能选择https)
>将URL重写规则更改为允许AlwaysOn ping天蓝域的规则,但所有其他域都应重定向
请指教.
尝试将此行添加到您的条件中:<conditions> <add input="{HTTP_HOST}" pattern="^zztestsite\.azurewebsites\.net$" /> <add input="{WARMUP_REQUEST}" pattern="1" negate="true" /> </conditions>
这告诉我不要重定向Always On ping.另请注意,我删除了MatchAny,因为你真的想在这里使用MatchAll(当你只有一个时无关紧要).
有关更完整的示例,请参见here.它用于将http重定向到https,但核心思想与Always On请求相同.该示例是一个xdt转换,因此它看起来与’直接’配置略有不同.实际上,您可能会考虑使用此类xdt而不是污染您的web.config.