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

fli*_*ubt 15 iis publish-profiles asp.net-core

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

Paw*_*wel 11

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

  • 即使使用了 app_offline.htm,yourwebsite.exe 仍在使用中,您无法复制新版本。使用 app_offline.htm 和应用程序池重置 _then_ 看起来您可以复制 yourwebsite.exe,但仅放置 app_offline.htm 是不够的。 (2认同)
  • @FerX32您应该将 .html 修复为 .htm。我已经因为使用html而不是htm而被烧伤过好几次了。 (2认同)