网络上的 Azure 预热 api 不工作
Azure warm up on web api is not working
我有一个网站,其中包含一些使用 web api 2 和 .net 4.6 编写的网络服务。我希望在重新启动站点或启动新实例(在 Azure 应用服务上)时初始化应用程序。
我在 webconfig 中有这段代码:
<configuration>
,,,,
<system.webServer>
...
<applicationInitialization doAppInitAfterRestart="true">
<add initializationPage="/" />
<add initializationPage="/api-v2/warmup/get" />
</applicationInitialization>
我有这个控制器:
public class WarmupController : ApiController
{
[HttpGet]
[RequireRole(UserRole.None)]
[IgnoreTypeScriptGeneration]
public IHttpActionResult Get()
{
Log.Information($"Warming up started. {Environment.MachineName}");
// my warm up code
Log.Information($"Warming up succeeded. {Environment.MachineName}");
return Ok();
}
我看不到任何日志。不是在我重新启动站点时,也不是在我进行横向扩展时。
我尝试在没有任何 headers 的情况下使用邮递员调用我的 api (只是到达 http://xxx//api-v2/warmup/get 并且它工作正常并且还写入了我的日志。
我已经读过这个帖子:
-Azure 和 webconfig 都没有 IP 限制
-webconfig 中没有 url 重写(例如 https 或 www。)
-没有涉及外部系统(如 CMS),所以我不需要发送主机名,但我也尝试发送它但没有成功
您在 initializationPage
模块中缺少 hostName,其中主机名将是您的实际网站名称 即 xx.azurewebsites.net
<system.webServer>
<applicationInitialization
doAppInitAfterRestart="true"
skipManagedModules="true">
<add initializationPage="/default.aspx" hostName="myhost"/>
</applicationInitialization>
所以我终于成功了!
问题出在我的代码中,而不是设置中。
启动代码中有一部分正在对请求添加检查,如果它来自本地主机,它就会停止进程。
所以吸取了教训! :)
检查 webconfig 的重定向和重写
检查执行相同操作的代码
我有一个网站,其中包含一些使用 web api 2 和 .net 4.6 编写的网络服务。我希望在重新启动站点或启动新实例(在 Azure 应用服务上)时初始化应用程序。
我在 webconfig 中有这段代码:
<configuration>
,,,,
<system.webServer>
...
<applicationInitialization doAppInitAfterRestart="true">
<add initializationPage="/" />
<add initializationPage="/api-v2/warmup/get" />
</applicationInitialization>
我有这个控制器:
public class WarmupController : ApiController
{
[HttpGet]
[RequireRole(UserRole.None)]
[IgnoreTypeScriptGeneration]
public IHttpActionResult Get()
{
Log.Information($"Warming up started. {Environment.MachineName}");
// my warm up code
Log.Information($"Warming up succeeded. {Environment.MachineName}");
return Ok();
}
我看不到任何日志。不是在我重新启动站点时,也不是在我进行横向扩展时。 我尝试在没有任何 headers 的情况下使用邮递员调用我的 api (只是到达 http://xxx//api-v2/warmup/get 并且它工作正常并且还写入了我的日志。
我已经读过这个帖子:
-Azure 和 webconfig 都没有 IP 限制
-webconfig 中没有 url 重写(例如 https 或 www。)
-没有涉及外部系统(如 CMS),所以我不需要发送主机名,但我也尝试发送它但没有成功
您在 initializationPage
模块中缺少 hostName,其中主机名将是您的实际网站名称 即 xx.azurewebsites.net
<system.webServer>
<applicationInitialization
doAppInitAfterRestart="true"
skipManagedModules="true">
<add initializationPage="/default.aspx" hostName="myhost"/>
</applicationInitialization>
所以我终于成功了!
问题出在我的代码中,而不是设置中。
启动代码中有一部分正在对请求添加检查,如果它来自本地主机,它就会停止进程。
所以吸取了教训! :)
检查 webconfig 的重定向和重写 检查执行相同操作的代码