我有一个Windows Azure托管的MVC3应用程序。在Application_Start中,我调用了所有需要在应用程序加载之前运行的bootstrappers,并且运行良好。其中一个运行的bootstrappers,点击一些Web服务API来预加载和缓存一堆数据。这个过程可能需要10-15秒,这很好,因为它在Application_Start中,并且在我自己部署并点击网站后一次点击。
该网站还没有推出,我发现一旦我部署并点击一下,一切都很好,非常快,那么如果我单独离开网站45分钟左右再回到它,加载页面时会有很长的延迟。通过日志记录,我发现Application_Start被解雇了,我不得不等待站点重新启动并运行我的所有bootstrappers。
我的问题是,如果不活动,Azure WebRole“进入睡眠状态”是否正常?如果是这样,我怎么能阻止这种情况发生,这样我访问该网站的幸运用户就没有那么长的等待时间和糟糕的经历。
答案 0 :(得分:6)
默认情况下,IIS在卸载它们之前对空闲应用程序有20分钟的超时。考虑使用启动任务来禁用此超时:http://blog.smarx.com/posts/controlling-application-pool-idle-timeouts-in-windows-azure。