为啥 Azure Web 角色上的 IIS 需要如此频繁地重新编译 ASP.NET 应用程序?

Posted

技术标签:

【中文标题】为啥 Azure Web 角色上的 IIS 需要如此频繁地重新编译 ASP.NET 应用程序?【英文标题】:Why does IIS on Azure Web Roles need to recompile ASP.NET apps so often?为什么 Azure Web 角色上的 IIS 需要如此频繁地重新编译 ASP.NET 应用程序? 【发布时间】:2011-05-06 00:33:20 【问题描述】:

我在许多不同的环境(AppHarbor、Azure、DiscountASP.NET、GoDaddy 等)上部署了 ASP.NET 应用程序,而在 Azure 上进行部署时困扰我的一件事是我的低流量网站如果超过几个小时没有请求,则获得 JIT 编译。

显然,我可以通过增加网站的流量(我在开玩笑)或尝试通过预编译来做一些 hacky 的事情来解决这个问题,但我宁愿理解为什么需要不断地编译网站天蓝色。我从来没有在其他供应商(甚至 GoDaddy)的低流量站点上注意到这个问题 - 这是有什么原因吗?我可以在 Azure 配置文件中做些什么来阻止这个问题吗?

【问题讨论】:

题外话,你觉得哪个共享主机提供商最好? DiscountASP.NET 用于简单的东西,AppHarbor 当我使用 Git 时,Azure 用于需要繁重的工作。 【参考方案1】:

使用 Web 角色启动任务来调整您的应用程序池超时设置。 Steve Marx 有一个post on how to do this in Azure. 您可以使用远程桌面登录来更改它以进行验证 - 但是下次部署时该设置会被吹走。

在其他环境中,应用程序池设置的配置可能不同。当我第一次设置 Azure 站点时,这困扰了我一段时间。

【讨论】:

谢谢,Brandon - 这正是我想要的。

以上是关于为啥 Azure Web 角色上的 IIS 需要如此频繁地重新编译 ASP.NET 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Windows Azure Web 角色上的 PHP 项目配置 TFS 构建定义以实现持续集成?

Windows Azure 虚拟机 - IIS 日志

Azure:使用完整 IIS 的内部 WebRole 通信 (netTcpBinding)

Azure Windows VM上的IIS Web托管问题

如何使用托管在本地 IIS 上的 Web 应用从 Azure 密钥保管库访问 web.config 中的应用设置和连接字符串等机密

Azure Web 角色通过 Autoscaler 不断回收