【问题标题】:How Do I deploy an application to IIS while that web application is running如何在 Web 应用程序运行时将应用程序部署到 IIS
【发布时间】:2011-08-06 19:41:12
【问题描述】:

在我工作的地方,当我们知道我们的客户没有使用系统时,我们每晚都会在系统中发布错误修复。

尝试向更好的服务迈出一步,我想在应用程序运行时将其部署到 IIS。

想到的一个解决方案是设置两个不同的 IIS 应用程序,并在部署后使用脚本切换它们。但我不打算尝试这个,因为我不想在我们忙碌的时间出现任何并发症。

有人在这个部署领域有经验吗?

谢谢

【问题讨论】:

    标签: deployment iis-7


    【解决方案1】:

    无论您使用的是 PHP、ASP、ASP.NET 等,都没有对 IIS 上的事务部署的本机支持。

    最简单的方法是在您的网络服务器上拥有两个物理文件夹和(可选的两个网站 - 一个生产,一个测试),例如:

    c:\网站\myapp\dep1 c:\网站\myapp\dep2

    最初,您的网站的物理路径会指向c:\websites\myapp\dep1

    当您部署最新版本时,您将部署到 c:\websites\myapp\dep2。完成后,只需将生产站点的物理路径切换到此文件夹即可。这意味着您仍然拥有原始站点,并且如果新代码由于任何原因失败,您可以回退到它。

    下次进行部署时,您将部署到 c:\websites\myapp\dep1,完成后将生产站点切换到该文件夹​​。

    您可以选择拥有一个指向您要部署到的文件夹的测试站点,这样您就可以在切换生产站点之前确保该站点正常工作。

    这一切都可以编写脚本。

    以下是一些可能感兴趣的相关阅读:

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

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

    Rob Conery 还发表了一篇关于 ASP.NET 应用程序缺乏体面部署故事的优秀博客文章。您应该浏览一下 cmets,其中一些很有见地:

    ASP.NET Deployment Needs To Be Fixed

    Getting Constructive On ASP.NET Deployment

    【讨论】:

    • 此策略,在 Powershell 中编写并使用 ARR:github.com/yosoyadri/IIS-ARR-Zero-Downtime/blob/master/…
    • @Adrian 不错。可能值得注意的是,Get-NetIPAddressNew-NetIPAddress cmd-let 仅在 Windows 8/2012 上开箱即用。
    • 谢谢@Kev,我不知道。在编写脚本以创建农场、节点、ips 和所有所需的设置之前,我放弃了。尽管所有功能都在那里 - 如果有人想冒险去做 - 脚本中的 Deploy 功能不依赖它们中的任何一个,并且可以在早期版本的 Windows 上运行,而是假设之前已经设置了所需的内容,手动或通过脚本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多