我们在我们的测试服务器上运行了一个ASP.NET Core站点,我们希望通过XCopy自动部署到我们的IIS Web服务器,就像我们现有的应用程序一样,我已经在该站点上运行。我已经添加了一个发布配置文件,将该网站打包到解决方案中的“发布 - 本地”目录。每当我尝试复制现有站点时,所有DLL都被另一个进程(可能是Kestrel)使用,所以我不得不部署到兄弟目录并重新映射IIS以查看兄弟。如何更新正在运行的ASP.NET Core站点而无需手动干预并停止Kestrel或IIS Web服务器?如何在不停止Web服务器的情况下通过现有/正在运行的站点更新ASP.NET Core应用程序?
回答
我们使用的一个小骗子是先重命名旧文件(类似my.dll.old
),然后复制新的dll。然后,您可以强制或等待应用程序池重新启动。
使用IIS运行时,可以将名为app_offline.htm
(区分大小写)的文件放到应用程序文件夹中。 IIS将停止您的应用程序并将提供app_offline.html
文件的内容。现在你可以复制你的应用程序。一旦完成删除app_offline.html和IIS将启动您的应用程序。这在docs以及my post中描述了使用IIS运行Asp.NET Core应用程序。
即使使用app_offline.htm,yourwebsite.exe仍在使用中,您无法复制新版本。随着app_offline.htm和应用程序池重置_then_它看起来像你可以复制yourwebsite.exe,但只是把app_offline.htm是不够的。 –
我的理解是,把app_offline.html应该足够了。 IIS试图平稳地停止你的应用程序,所以如果有挂起的请求停止应用程序进程可能不会立即。如果您在app_offline.html放入app_offline.html后没有看到应用程序停止,我建议在此回购站点中打开一个问题:https://github.com/aspnet/AspNetCoreModule – Pawel
我会这样想,但这是一个问题现在碰撞了。在我的TFS版本中,我有一个放入app_offline.htm的powershell脚本,它等待几秒钟,向IIS提交一个请求,并取回503错误,显示应用程序处于脱机状态......但mywebsite.exe已被_still_锁定编辑和dotnet发布失败。 :(我想我会提交一个问题到您建议的回购,因为我同意 - app_offline.htm应该足够好。 –
- 1. 如何在不停止站点的情况下更新ASP.Net站点dll
- 2. 如何在没有Web服务器的情况下运行php?
- 3. 如何在不使用VS2010的情况下运行ASP.NET Web应用程序?
- 4. 如何在服务器停止的情况下删除会话
- 5. 如何在不重启的情况下停止服务
- 6. 如何在不停止服务器的情况下使用我们的django应用程序进行加密?
- 7. 如何在不停止程序的情况下更改参数
- 8. 如何在不停止的情况下运行Wso2server.bat和carbon.bat作为服务
- 9. 如何在不使用服务器的情况下运行node.js
- 10. 在没有Web服务器的情况下构建Web服务
- 11. 如何在Apache Web服务器上运行ASP.NET应用程序?
- 12. ASP.NET Web应用程序可以在没有web.config的情况下运行
- 13. 如何在没有Web服务器的情况下运行Sencha Touch 2应用程序?
- 14. GDB如何在没有断点的情况下停止执行?
- 15. 在不关闭服务的情况下停止子进程
- 16. 如何停止所有正在运行的流星服务器
- 17. Apache2服务器/网站在下载过程中停止响应
- 18. 在IIS中运行的ASP.Net Web站点 - 更改为ASP.Net开发服务器
- 19. 如何在不停止批处理的情况下停止当前正在运行的cmd进程?
- 20. 在不停止正在运行的实例的情况下更改正在运行的EC2实例的.pem键
- 21. 在没有网络服务器的情况下运行Django
- 22. 如何停止在服务器上运行的程序?
- 23. 在不更新Web.config的情况下添加WCF Web服务
- 24. 如何在没有System.Threading.Thread.Sleep的情况下停止程序。 C#?
- 25. 如何在Linux上运行ASP.NET Core Web应用程序?
- 26. C#:如何在不停止程序执行的情况下执行线程
- 27. 如何在不停止的情况下更新apache nifi处理器的配置?
- 28. 通过Apache Tomcat服务器运行Web应用程序
- 29. 如何在没有网络服务器的情况下运行“sencha app watch”
- 30. 如何停止正在运行的solr服务器?
我正在尝试使用MSBUILD和TeamCity将脚本复制到Web服务器。凯斯特雷尔不会阻止重命名? – flipdoubt
如果文件正在使用中,它们肯定不会允许重命名。 – QuietSeditionist
您可以重新命名实际使用中的文件。 – Pawel