天蓝色的网站的生命周期

时间:2013-02-23 12:31:22

标签: asp.net iis azure web

我想知道Azure网站的生命周期 - 具体来说:
1. Azure网站在部署后是否会立即自动启动(global.asax application_start fire)?还是需要外部刺激 - http请求?
2.它如何以及何时被回收?
3.在它回收后,它会自动启动(全局application_start fire)还是需要外部刺激。

实际上我需要有一个小的后台作业(它还与某些传入的http请求接口),我打算在启动时调用它。 我知道它可以在工作者/ Web角色中完成,但我喜欢Azure网站的即时部署。

PS。我计划为azure网站使用Reserved实例。

由于

2 个答案:

答案 0 :(得分:2)

不,Windows Azure网站在部署后不会自动启动网站。最重要的是因为从实际创建网站到你将内容放入其中的时间非常多。我通过创建Azure网站并向其部署MVC 4应用程序来验证这一点。应用程序的全局变量设置为全局应用程序启动时的当前日期时间,然后在默认控制器上输出该日期时间和服务器上的当前日期时间。我在部署代码后等了几分钟然后调出了页面。两次几乎完全相同,这意味着应用程序在控制器之前启动。如果在部署时某些东西已经启动了应用程序,那么这些时间会因我等待的时间而消失。

由于部署后不会立即旋转,因此需要一些外部刺激。

根据服务器的繁忙程度,即使在我认为的预留实例上,也可以关闭站点,因为它可以在5分钟到20分钟之间闲置。如果发生这种情况,下一个请求将通过在服务器上创建新的IIS进程将其重新启动。当发生这种情况时,它不会立即重新启动站点,而是等待请求进入。当然,您可以使用pingdom甚至Windows Azure移动服务调度程序等服务向您的站点发送请求保持活着。

你提到了一份后台工作,我想知道你是否可以通过网站轻松实现这一目标。如果你使用新进程来解决这个问题,我不确定它是否会起作用,如果你在同一个进程中使用新线程进行了这个操作,那么你仍然会遇到同样的问题,该网站可以通过它来解决这个问题。 / p>

在谈论与某些传入请求接口的后台作业时,我不确定你的目标是什么,所以我不能说太多。如果后台作业是在计时器上运行的,那么您可以使用类似移动服务计划程序的内容来按计划发送请求,以便您的代码作出反应。

答案 1 :(得分:0)

实际上在#1上,如果您设置AlwaysOn设置,该站点可以自动启动,该设置实质上模拟应用程序的HTTP流量,以保持其工作进程正常运行并且您的应用程序预热。您可以在doc page上了解有关该设置的更多信息。