如何在不停止.NET5中的IIS应用程序和池的情况下更新ASP.NET Core文件?

IT *_*Han 4 iis asp.net-core .net-5

每次需要停止IIS应用程序或池来更新

或者系统会显示The action can't be completed becacuse the file is open in w3wp.exe

我希望像asp.net或mvc一样,你不需要停止IIS来更新。


现在我的方式,我drop a file called app_offline.htm (case sensitive) to my application folder. Let IIS auto stop my application then I update it

从这篇文章iis - 如何在不停止 Web 服务器的情况下通过现有/正在运行的站点更新 ASP.NET Core 应用程序?- 堆栈溢出

Din*_*eng 7

如果我们使用asp.net core,我们无法实现不间断的更新项目。

当IIS运行你的网站进程时,如果此时有请求进来,dll/exe文件就会被锁定。如果此时发布更新项,则无法成功替换dll/exe,并且会报错。

至于为什么asp.net能够实现不间断更新,因为core和asp.net的区别在于,asp.net应用程序完全部署在IIS中,而asp.net core则使用IIS作为代理服务器。我们可以将核心应用程序视为控制台应用程序。因此要更新asp.net core应用程序必须停止IIS。

我想到的解决方案是提供一个过渡站点。