我使用teamcity和webdeploy进行ASP.net MVC5站点设置以进行持续交付。
什么是奇怪的,我不明白的是,webdeploy如何让网站“挂起”近10分钟。
发布任务在不到30秒的时间内完成,并完全停止并完成。但如果你点击网站,它只是'等待',什么都不显示,什么都不做,大约5到10分钟。
任何人都可以给我一些关于幕后发生的事情的提示吗?如果它真的在30秒内发布......那么长时间等待网站再次可用的是什么?
修改
以下是我在teamcity中使用MSBuild的命令行参数(为可读性添加了新行)
%env.Configuration%
在我认为是Release
的情况下
并且%env.TargetServer%
是我的服务器IP地址
/P:Configuration=%env.Configuration%
/P:DeployOnBuild=True
/P:DeployTarget=MSDeployPublish
/P:MsDeployServiceUrl=https://%env.TargetServer%/MsDeploy.axd
/P:AllowUntrustedCertificate=True
/P:MSDeployPublishMethod=WMSvc
/P:CreatePackageOnPublish=True
/P:Username=myDomain\myUser
/P:Password=myPassword
答案 0 :(得分:1)
这可能是IIS在更改文件后重建应用程序(即Dynamic Compilation),尽管5-10分钟似乎相当过分。如果没有完全可见度,我很难估计。
当您发出第一个请求(部署之后)以了解正在进行的操作时,值得在IIS服务器上运行一些诊断程序。我通常会使用Sysinternals Process Monitor这样的内容。您应该能够看到文件系统级别发生了什么,并且能够理解在提供第一个请求时花了多少时间。
不确定是否会有一个简单的答案,更多的是通过运行诊断和建立一些有形的性能信息来挖掘更多信息。