在不中断服务的情况下将ASP.NET部署到单个服务器

时间:2011-08-11 15:49:42

标签: asp.net iis-7.5 microsoft-web-deploy

  

可能重复:
  How Do I deploy an application to IIS while that web application is running

     

How to deploy an ASP.NET Application with zero downtime

     

Publishing/uploading new DLL to IIS: website goes down whilst uploading

     

Is smooth deployment possible with componentized ASP.NET MVC apps?

我有一个在单个服务器上运行的网站(因此没有负载均衡器)。当我使用MSDeploy进行部署时,我的虚拟目录中的所有文件都会被覆盖。当然,这是预料之中的。问题是我的用户在IIS重置时会中断15-30秒左右。没什么大不了的,但如果有0次中断会更好。我不认为这是可以避免的,但想检查是否有人知道我不知道的事情

3 个答案:

答案 0 :(得分:1)

正如我在这里提到的那样:How to deploy an ASP.NET Application with zero downtime即使我们在我的公司也遵循这种方法,它至今仍然适用于我们。我们开发了一款可以帮助我们的应用程序..

它与Teamcity集成了一个持续集成工具,告诉我们部署的进度并记录相同的内容。

答案 1 :(得分:0)

如果您的代码或web.config已更改,IIS将重新启动该应用程序。可能有办法解决这个问题,但涉及的工作量远大于收益。

答案 2 :(得分:-1)

它是可行的,它只取决于您希望构建/部署的复杂程度。

例如你可以:

  • 将您的网站部署到新文件夹(即sitename_deploy)
  • 为新文件夹创建虚拟目录
  • 强制加载新网站(以便IIS启动网站)
  • 重命名现有的网站目录(即sitename_old)
  • 将新站点文件夹重命名为正确的实时文件夹名称(即网站名称)
  • 删除旧网站(即sitename_old)
  • 删除您在步骤2中创建的虚拟目录。

应该说我实际上没有尝试过,所以它可能是垃圾,IIS可能会在虚拟目录路径更改时重新启动站点。 ;-)如果它确实有效,那么你唯一的停机时间就是重命名两个目录所需的时间。