Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc IIS 8发布-消除应用程序更新时的挂起时间_Asp.net Mvc_Iis_Teamcity_Msdeploy - Fatal编程技术网

Asp.net mvc IIS 8发布-消除应用程序更新时的挂起时间

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

在将更改发布到单服务器IIS 8 ASP.NET MVC应用程序时,限制(或最好消除)挂起时间的最佳做法是什么

现在,我们正在通过TeamCity通过MSBuild.exe部署更改。一旦部署了应用程序,它会挂起不到一分钟,执行启动操作(构建NHibernate代理程序集、更改db模式、构建ioc容器等)

我们是否有办法设置“旧”流程一直处理请求,直到新流程完全就绪(而不仅仅是部署)

编辑:

我们的启动代码是通过

[assembly: WebActivator.PreApplicationStartMethod(typeof(..), "..")]

属性。

您没有指定正在使用的IIS版本,但如果您使用的是8.0版,则可能需要查看应用程序初始化功能:


您需要将应用程序池启动模式设置为AlwaysRunning,然后将preloadEnabled设置为true。将preloadEnabled设置为true会告诉IIS 8.0在关联的应用程序池启动时向应用程序发送“假”请求,虽然这不会消除启动编译,但这将意味着您的应用程序比以前更快可用。如果您不希望用户挂起,您还可以将IIS设置为在编译过程中显示替代页面

多谢各位。我们正在使用iis8。有没有办法继续使用旧流程而不是替代页面?显示页面对我没有帮助,我们需要人们继续使用系统…没有一种方法可以做你想做的事情,因此我建议你利用应用程序初始化,这将在你部署应用程序后立即预热应用程序。您可能还想看看这篇关于优化asp.net启动时间的博文: