我创建了一个在Azure上托管的API。 API使用Java和Spring Framework构建。一切正常,除了每天早上的第一个请求,这似乎需要超过1分钟的时间来处理。我已将服务器配置为"始终开启"但这似乎没有任何效果。我知道瓶颈是应用程序服务器,因为即使是没有数据库调用的简单http请求也需要至少1分钟才能处理。我使用了免费试用结算方案,这会影响"永远在线"特征?如果不是,导致这种缓慢负载的原因是什么?
答案 0 :(得分:0)
ALWAYS ON
功能只能在基本或标准定价层中启用。因此,如果您使用了免费试用结算方案,则会禁用always on
功能的选项。但是,您可以尝试不断ping您的Azure应用服务以使其保持活动状态。
有关详细信息,请参阅博客http://wp.sjkp.dk/windows-azure-websites-and-cloud-services-slow-on-first-request/。
答案 1 :(得分:0)
我们遇到了类似的问题,即在一些空闲时间之后,应用程序已卸载并且必须重新启动,尽管已启用始终开启。
我们联系了Azure应用服务支持以解决此问题。在我们的案例中,web.config
中的从http到https 的永久重定向导致了此问题(似乎存在 Always On 无法与Tomcat网络应用一起使用的情况与重写规则相结合)。
可以通过为重定向添加AlwaysOn
豁免来解决此问题。您将在下面找到Azure支持工程师提出的更新web.config
:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="redirect HTTP to HTTPS" enabled="true" stopProcessing="true" lockItem="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
<add input="{HTTP_USER_AGENT}" pattern="AlwaysOn" ignoreCase="true" negate="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>