2
发布

我从很慢的速度苦难云服务上我的MVC3 .NET4.5应用程序的初始加载之前预编译Web应用程序,那么当然,当池回收每隔20分钟。如何在Azure云服务

现在我能延长回收,但在我看来这将是一个更好的解决方案,只需在本地预编译的一切,然后打包并发布到云服务。

如何在本地进行预编译,然后打包预编译的代码以进行发布?

感谢

回答

2

的问题是,随着Azure的SDK自带的默认的MSBuild脚本不包括预编译的结果到服务包。所以预编译应用程序并不是问题,但将预编译结果打包是一个问题。一种可能的解决方案是按照here的描述在原地预编译应用程序。

的20分钟空闲超时毫无意义的Web角色所以它的价值只是禁用它。接下来你要面对的是,当第一个请求到达时启动Web应用程序仍然需要一些时间,因为需要从磁盘加载大量代码并进行JIT编译,并且解决方法是使用IIS的“热身”功能或者直接从角色OnStart()发送请求到“localhost”。

+0

感谢您的支持。令人惊讶的是预编译并不简单,对我来说似乎很合理。也许MS认为,本地预编译将会针对本地操作系统,而这不一定与部署“osFamily”相同,所以最好将其作为IL代码。目前,我已经从外部监测站点实施了一项关于相关行动的存活监测,似乎正在起作用。你可以更多地提醒我“暖身”/ OnStart()的东西....不是我知道的东西。再次感谢。 – SamJolly

+1

@SamJolly:从未尝试“热身”,这里描述http://blogs.iis.net/thomad/archive/2009/10/14/now-available-the-iis-7-5-application-warm-up -module.aspx在其他帖子gazillion。具有'OnStart()'的部分非常简单 - 您可以使用'WebRequest'向同一台机器上运行的IIS发送HTTP请求。 – sharptooth

+0

谢谢...赞赏 – SamJolly