我有一个asp.net mvc4应用程序,我们部署到大约1400个客户端。我们当前的部署过程如下:
:: Publish the project files to a local directory
%msbuild% RPortal.csproj "/p:Platform=AnyCPU;Configuration=Release;ConfigurationName=Release;SolutionDir=%solutionDir%;PublishDestination=.\Deploy\Release" /t:PublishToFileSystem
然后我们有一些PowerShell脚本将新版本推送给我们的每个客户,使用其他工具来帮助同步。
我们注意到应用程序启动时间(有时超过5分钟)会出现一些严重的问题,我们调查解决此问题的方法之一就是ASP.Net预编译的想法({{3} })
在一些实验中,似乎在我们发布的系统上调用aspnet_compile.exe
确实会创建一些新文件。 (几个dll和一些* .compiled文件)。
我的问题如下:
根据我们当前的情况,似乎我们正在杀死我们的服务器试图启动1400个应用程序(是的,它们都存在于1个网络服务器上......这不是我控制的情况) 。服务器将嗡嗡作响,没有特别的问题,合理的资源消耗,然后,突然之间,我们的CPU将固定到100%并保持在那里。我们可以将其重新绑定的唯一因素是,当超过5个(或大约)1400个应用程序全部启动时,就会发生这种情况。
我们希望预编译能够承担大部分应用程序启动负担,但我显然不了解这里真正发生的事情。
你最喜欢的任何光线都会受到赞赏。