【问题标题】:Is it possible to smoothly "hot deploy" an ASP.NET Core app?是否可以顺利“热部署”一个 ASP.NET Core 应用程序?
【发布时间】:2019-04-03 20:39:45
【问题描述】:

在带有 .NET Framework 的 ASP.NET 下,您可以在不中断的情况下执行新代码的“热部署”。这是因为 IIS 可以为同一个应用程序处理多个应用程序域:当新代码到达时,它会“停止”旧应用程序域,允许它在新应用程序域启动并开始服务新请求的同时完成请求。

我的问题是:在带有 Kestrel 的 ASP.NET Core 中是否有与此相似的地方?如果有,是什么?

【问题讨论】:

  • 您如何部署常规 ASP.NET?复制?还是网络部署?
  • @mason 这部分是我想要弄清楚的。其中任何一个都会影响答案吗?
  • 我在问您如何部署现有应用程序。我不知道在不中断的情况下部署 ASP.NET 应用程序的一些内置方式。
  • @mason 与 ASP.NET 我们使用 MSDeploy 并且效果很好。旧的应用程序域保留,而新的应用程序域启动。由于应用程序启动时间的原因,它不是 100% 无缝的,但没有丢失的请求。
  • 不这样认为,我们在 iis 中的 windows 上托管我们的 asp.net 核心应用程序,并且必须使用 app_offline.htm 方法才能仅 xcopy 应用程序。

标签: c# asp.net asp.net-core kestrel


【解决方案1】:

Kestrel 不像 IIS 那样内置此功能。想一想:Kestrel 直接绑定到端口 80。您必须启动一个新的 Kestrel 进程来更新您的代码。这些进程不能共享端口 80,如果没有反向代理,就无法将其从一个进程传递给另一个进程。

您可以在网络服务器前使用负载平衡器。然后进行滚动更新或蓝绿部署。

【讨论】:

  • Azure 持续部署是否适用于 Asp.net Core?在 .Net MVC 中,这可以通过 Azure 应用服务来完成。然后,您只需将持续部署工具指向您的生产或测试 git 分支。
猜你喜欢
  • 2011-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-25
相关资源
最近更新 更多