Azure网站的App池超时问题

22

有没有一种方法可以设置在 Azure 站点下运行的网站的应用程序池的超时时间。

我有一个正在那里运行的网站,当它闲置一段时间后似乎需要重新启动。


1
让网站保持活跃的一种方法是在某个地方设置一个脚本,每隔15分钟获取您网站的某些页面(基本上 HTTP GET 某个 URL)。这样,您的网站将是活动状态,并且不会被回收。许多使用共享主机的人使用此技巧,但我不知道它是否适用于 Azure 网站。您可以使用像 Pingdom 这样的服务。 - Toni Parviainen
我博客中介绍了如何解决这个问题,并构建了一个服务来保持您的网站运行:http://ideasof.andersaberg.com/idea/14/keep-your-free-azure-website-from-idle-app-pool-timeout - Anders
Azure Web Sites现在有一个“始终运行”功能(请参见http://weblogs.asp.net/scottgu/archive/2014/01/16/windows-azure-staging-publishing-support-for-web-sites-monitoring-improvements-hyper-v-recovery-manager-ga-and-pci-compliance.aspx) - twomm
“始终开启”功能似乎仅适用于标准层。 - Filip
3个回答

19

由于相关答案在评论中,很容易被忽略。目前Azure Web应用程序支持Always On功能,可将您的应用程序保留在内存中。它在Basic及以上层中可用,并且您可以从门户进行配置:

Resource_Group > Web App > Settings > Application settings

Always On

如果您想在“免费”或“共享”层中实现相同的效果,您可以创建一个“webjob”,以便定期ping您的网站以保持其记忆。有很多博客文章介绍如何实现这一点12等。

2是一个死链接,顺便说一下。 - Alan
现在您可以创建一个Azure函数来创建一个WebJob来ping您的网站。 - Greg Gum

18

Windows Azure Web Sites支持两种模式,共享模式和预留模式。

在共享模式下,您的网站进程(w3wp)与其他进程一起运行,共享CPU和内存等资源。运行时(即Windows Azure Web Sites系统)在一段不活动期后从内存中删除站点,即当您的站点没有任何流量时。运行时基于许多参数进行决策删除站点,即使您更改配置也可能不适用,因为运行时可以覆盖该配置。

如果您希望您的站点始终在内存中,则可以考虑切换到预留实例,在其中您的站点将在自己的VM上运行,并且系统在资源利用方面更加灵活。

Yochay(PM Azure Web Sites)


5
切换到预留模式后,我们是否需要更改任何参数以防止空闲超时? - Freshblood

3

如果您提到的是新的Windows Azure Web Sites,我认为您没有任何控制应用程序池超时的选项。这是一个共享的托管服务,您只需上传您的网站,IIS等细节会为您处理。您可以查看已发布的管理页面,您会发现这不是一个选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接