首页 文章

如何在不停止 Web 服务器的情况下在 existing/running 站点上更新 ASP.NET Core 应用程序?

提问于
浏览
14

我们在我们的测试服务器上运行了一个 ASP.NET 核心站点,我们希望通过 XCopy 将我们的 IIS 网络服务器 auto-deploy 运行到当前的应用程序,我已经在运行该站点。我添加了一个发布配置文件,将该站点打包到解决方案中的“publish-local”目录。每当我尝试复制现有站点时,所有 DLL 都被另一个进程使用,可能是 Kestrel,因此我被迫部署到兄弟目录和 re-map IIS 来查看兄弟。如何在不必手动干预和停止 Kestrel 或 IIS Web 服务器的情况下更新正在运行的 ASP.NET Core 站点?

2 回答

  • 11

    使用 IIS 运行时,可以将名为app_offline.htm(区分大小写)的文件拖放到应用程序文件夹中。 IIS 将停止您的应用程序并将提供app_offline.html文件的内容。现在您可以复制您的应用程序。完成后删除 app_offline.html,IIS 将启动您的应用程序。在使用 IIS 运行 Asp.NET 核心应用程序的文档我的帖子中对此进行了描述。

  • 0

    我们使用的一点欺骗是首先重命名旧文件(类似于my.dll.old),然后复制新的 dll。然后,您可以强制或等待应用程序池重新启动。

相关问题