Asp.net mvc IIS 8发布-消除应用程序更新时的挂起时间
在将更改发布到单服务器IIS 8 ASP.NET MVC应用程序时,限制(或最好消除)挂起时间的最佳做法是什么 现在,我们正在通过TeamCity通过MSBuild.exe部署更改。一旦部署了应用程序,它会挂起不到一分钟,执行启动操作(构建NHibernate代理程序集、更改db模式、构建ioc容器等) 我们是否有办法设置“旧”流程一直处理请求,直到新流程完全就绪(而不仅仅是部署) 编辑: 我们的启动代码是通过Asp.net mvc IIS 8发布-消除应用程序更新时的挂起时间,asp.net-mvc,iis,teamcity,msdeploy,Asp.net Mvc,Iis,Teamcity,Msdeploy,在将更改发布到单服务器IIS 8 ASP.NET MVC应用程序时,限制(或最好消除)挂起时间的最佳做法是什么 现在,我们正在通过TeamCity通过MSBuild.exe部署更改。一旦部署了应用程序,它会挂起不到一分钟,执行启动操作(构建NHibernate代理程序集、更改db模式、构建ioc容器等) 我们是否有办法设置“旧”流程一直处理请求,直到新流程完全就绪(而不仅仅是部署) 编辑: 我们的启动代码是通过 [assembly: WebActivator.PreApplicationStar
[assembly: WebActivator.PreApplicationStartMethod(typeof(..), "..")]
属性。您没有指定正在使用的IIS版本,但如果您使用的是8.0版,则可能需要查看应用程序初始化功能:
您需要将应用程序池启动模式设置为AlwaysRunning,然后将preloadEnabled设置为true。将preloadEnabled设置为true会告诉IIS 8.0在关联的应用程序池启动时向应用程序发送“假”请求,虽然这不会消除启动编译,但这将意味着您的应用程序比以前更快可用。如果您不希望用户挂起,您还可以将IIS设置为在编译过程中显示替代页面 多谢各位。我们正在使用iis8。有没有办法继续使用旧流程而不是替代页面?显示页面对我没有帮助,我们需要人们继续使用系统…没有一种方法可以做你想做的事情,因此我建议你利用应用程序初始化,这将在你部署应用程序后立即预热应用程序。您可能还想看看这篇关于优化asp.net启动时间的博文: