.NET Web 应用程序自动更新拉式

标签 .net iis

我有几个使用类似 cms 框架的 .net Web 应用程序。当我向这个核心框架添加新功能时,我希望每个应用程序都使用此功能进行更新。所以基本上我需要执行以下步骤:

  • 将 App_Offline.htm 放在应用程序根目录中
  • 从更新服务器复制已更改的文件
  • 如果需要,运行 SQL 更新脚本
  • 删除 App_Offline.htm

  • 我阅读了 CruiseControl 和其他持续集成工具,它们的功能与我需要的非常相似。问题是他们使用推送式更新,以便集成服务器构建源代码,然后将文件复制到生产服务器。我不能使用这种方法,因为我的客户不能让我访问他们的生产服务器。所以我需要的是在 IIS 管理器或其他任何地方有一个“更新”按钮,以便客户端可以单击它并从更新服务器中提取数据。有谁知道是否有解决方案来实现这一目标?

    谢谢

    最佳答案

    我采用的方法是创建一个脚本,从 git 中提取最新的部署版本,停止 IIS,复制新版本,启动 IIS。它非常粗糙,但如果你的 git 存储库中唯一的东西是最新的可部署版本,它就可以工作。

    我什至在 Visual Studio 中设置了发布按钮以复制到我的本地 git 部署存储库。然后我只是从我的开发机器推送,并在我的目标 Web 服务器上运行我的部署脚本,它拉取最新版本。

    您问题的 SQL 更新脚本部分很有趣。听起来您需要类似于 Rails 中的数据库迁移。这不是我必须处理的事情,但我会在这里指出:http://www.infoq.com/news/2009/01/migrations_dotnet

    关于.NET Web 应用程序自动更新拉式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3334024/

    相关文章:

    .net - 检测 .NET 中命名空间之间的依赖关系

    c# - .NET 中的模块是什么?

    iis - 如何覆盖 Web API 中的所有标准错误页面

    .net - 将 Moles 与 XUnit 一起使用 - 错误的 dll 版本

    c# - 为什么我的 ASP.NET Web 服务不能启动进程,但我的 .NET 控制台应用程序可以?

    asp.net - IIS 7.5 (Windows 7) 中是否缺少默认的 ASHX 处理程序映射?

    asp.net - 在 IIS 上运行 Python 和 Django

    iis - Blob wad-iis-logfiles 从未创建

    c# - Azure Blob 容器 - 上传具有相同名称属性的 Blob

    asp.net - 如何配置 IIS 以使用自定义内容提供 404 响应?