我有一个网站,其中包含一些使用 web api 2 和 .net 4.6 编写的 web 服务。我希望在重新启动站点或启动新实例(在 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();
}
我看不到任何日志。不是当我重新启动站点时,也不是当我向外扩展时。我尝试使用没有任何标题的邮递员调用我的 api(只需访问http://xxx//api-v2/warmup/get,它运行良好,并且还写入了我的日志。
我已经读过这个帖子:Cannot warm up pages using applicationInitialization in webconfig
-Azure 和 webconfig 上没有 IP 限制
-webconfig 中没有 url 重写(例如 https 或 www。)
- 不涉及外部系统(如 CMS),所以我不需要发送主机名,但我也尝试发送它但它没有用