Azure网站和ASP.NET,在应用程序池被回收导致重新编译之前有多少不活动?

Sam*_*lly 5 asp.net-mvc azure

我有一个在Azure网站上托管的MVC3,.NET4.5 asp.net Web应用程序.

我正在尝试"免费","共享"和"标准"缩放配置.

我注意到经过一段时间的不活动后,编译的代码从内存中删除,或者应用程序池被重新循环,强制重新编译JIT.

我的主要问题是在编译代码被强制重新编译之前的时间段是多少?我认为这是应用程序池回收的结果?我在标准的共享主机上遇到过这种情况,例如DiscountASP.

我的第二个问题是:最小化此问题的最佳方法是什么,因为我不希望我的用户遇到这种重新编译滞后?我最初的想法是预编译.

提前谢谢了.

编辑:

我在这里发现了一个相关的SO帖子:天蓝网站的应用程序池超时

然而,似乎像标准共享主机一样,无法更改App Pool回收.由于它是专用的,因此"标准"比例选项具有更大的灵活性.所以目前可能的选择是:

1)预编译

2)使用"保持活动"ping站点.

EDIT2:

1)"保持活力"的方法似乎有效.我有一个10分钟的监视器运行.

sha*_*ham 2

我认为默认不活动时间为 20 分钟。我还没有使用过网站,所以我不熟悉更改设置的限制,但保持网站活跃的一种快速方法是使用Pingdom等正常运行时间监控服务(在撰写本文时,您可以免费检查一个网站) ,这将定期对您的网站执行 ping 操作并防止其闲置。

  • Azure 通常会在多个服务器/实例上运行您的站点,以避免停机,这意味着对于两个实例(例如)和 10 分钟 ping 间隔,一个实例将每 20 分钟收到一次 ping(在循环负载平衡中),这将是不活动窗口的边缘。随着“服务器”数量的增加,每台服务器都会以更大的间隔接收 ping,因此实例仍可能会超时。听起来它在你的情况下工作得很好,但只是需要注意一下。 (2认同)