【问题标题】:Deploying a classic ASP site with Octopus使用 Octopus 部署经典 ASP 站点
【发布时间】:2012-11-28 22:08:38
【问题描述】:

我们目前正在尝试将部署新的 ASP.NET 项目与 Octopus 集成,我想知道是否有人尝试使用 Octopus 部署经典 ASP 站点?

我知道这是可能的,并且理论上我知道该怎么做,但我们的问题源于 ASP 站点非常庞大这一事实。在将所有视频、图像和 pdf 的总大小相加后,该网站的重量不到 3 gig。因此,当将更改签入 TeamCity 并创建 NuGet 包时,Octopus 会将 3 gig nuget 包推送到 2 个单独的负载平衡服务器。

我们无法为媒体文件创建共享目录或 cdn(至少现在还没有),所以谁能告诉我一个解决这个问题的好方法?还是 Octopus 不是大型 ASP 站点的好解决方案,而 Web Deploy 会更好?如果是这样,如何为 Web Deploy 实施备份解决方案,以便可以回滚任何错误?

提前感谢您对此的帮助。我们正在将这些 ASP 网站转换为 MVC,但这需要一段时间,在完成之前,我们必须找到一种方法来使用它们。

【问题讨论】:

    标签: octopus-deploy


    【解决方案1】:

    您应该将 ASP 站点和媒体文件打包为 2 个单独的 NuGet 包。这将允许您更新和部署 ASP 代码,而无需部署所有媒体文件(假设代码更改比媒体更频繁)。

    实现细节

    • 设置 TeamCity 以将 ASP 网站和媒体文件打包为单独发布的 NuGet 包。
    • 在 Octopus Deploy 中添加 2 个 NuGet 包中的每一个作为单个项目的部署步骤
    • 当您在 Octopus 中创建新版本时,请为 ASP 代码选择最新的包版本,为媒体文件选择之前发布的包版本。
    • 部署版本时,您可以选中一个框以跳过媒体文件的部署

    提示

    • 使用 Octopus 变量“OctopusWebSiteName”来指定您的媒体文件包应该部署在您的 ASP 站点的子目录中。 (如“默认网站/媒体”)该变量可以限定为特定包,以便仅在部署该包时应用。

    【讨论】:

    • 这太棒了。感谢您的详细回复。
    【解决方案2】:

    您真的需要每次都推送所有内容吗?不能只推送更改吗?

    【讨论】:

    • 我对 TeamCity 和 Octopus 部署过程的了解有限,因为 Octopus 将从 TeamCity 存储库中提取 NuGet 包。 NuGet 包将包含 ASP 站点的完整源代码 (4GB)。我错了吗?
    猜你喜欢
    • 2011-01-19
    • 2015-12-27
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多